Příkaz return ukončí funkci

return dělá dvě věci najednou: vrátí hodnotu a hned ukončí funkci. Zbytek funkce se už neprovede:

function secti(a, b) {
    return a + b;
    console.log("Tento řádek se nikdy neprovede.");
}

console.log(secti(2, 3));

Tento kód vypíše:

5

Řádek za return se nikdy neprovede, protože funkce skončila už o řádek dřív.

To se hodí hlavně v kombinaci s podmínkami. Následující funkce popíše počasí podle teploty:

function popisPocasi(stupne) {
    if (stupne < 0) {
        return "mrzne";
    }
    if (stupne < 20) {
        return "chladno";
    }
    return "teplo";
}

console.log(popisPocasi(-5));
console.log(popisPocasi(12));
console.log(popisPocasi(25));

Tento kód vypíše:

mrzne
chladno
teplo

Projděme si všechna tři volání:

  • popisPocasi(-5): -5 < 0 je true, a tak funkce vrátí "mrzne" a skončí. Druhá podmínka se vůbec nekontroluje.
  • popisPocasi(12): první podmínka je false a druhá true, a tak funkce vrátí "chladno".
  • popisPocasi(25): ani jedna podmínka není true, a tak se funkce dostane až na poslední řádek a vrátí "teplo".

Nepotřebovali jsme žádné else: jakmile se provede return, zbytek funkce se stejně přeskočí. Záleží ale na pořadí podmínek, protože vyhraje první return, který se provede. Kdyby funkce nejdřív kontrolovala stupne < 20, vrátila by pro -5 hodnotu "chladno", protože i -5 je menší než 20.

Pokyny

Doplňte funkci cenaVstupenky tak, aby vracela cenu vstupenky do zoo pro návštěvníka daného věku: děti mladší 6 let mají vstup zdarma (0), návštěvníci mladší 18 let platí 100 a všichni ostatní 200. Program pak vypíše 0, 100 a 200.

Senioři od 65 let platí také 100. Přidejte pro ně do funkce podmínku a na konci programu vypište cenaVstupenky(70).

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

6/10