Vnořené podmínky
Blok kódu může obsahovat jakýkoli kód, i další příkaz if. Příkazu if v bloku jiného příkazu if se říká vnořená podmínka. Hodí se, když jedna otázka dává smysl až po jiné. V kině třeba nejdřív zjišťujeme, jestli má návštěvník vstupenku, a teprve potom, kolik mu je let:
const maVstupenku = true;
const vek = 15;
if (maVstupenku) {
if (vek >= 18) {
console.log("Příjemnou zábavu");
} else {
console.log("Promiňte, film je jen pro dospělé");
}
} else {
console.log("Nejdřív si kupte vstupenku");
}Tento kód vypíše:
Promiňte, film je jen pro dospěléVnitřní příkaz if se provede, jen když je maVstupenku pravda. Každý vnořený blok je odsazený o další 4 mezery, aby bylo vidět, která } a které else patří ke kterému if. Bez odsazení se ve vnořených podmínkách rychle ztratíte.
Vnořené podmínky jde často přepsat pomocí logických operátorů a else if. Tento kód dělá totéž:
const maVstupenku = true;
const vek = 15;
if (maVstupenku && vek >= 18) {
console.log("Příjemnou zábavu");
} else if (maVstupenku) {
console.log("Promiňte, film je jen pro dospělé");
} else {
console.log("Nejdřív si kupte vstupenku");
}Tento kód vypíše:
Promiňte, film je jen pro dospěléK else if (maVstupenku) se program dostane, jen když je první podmínka nepravdivá. Se vstupenkou to znamená, že návštěvníkovi ještě není 18. Ani jeden způsob není špatný: vyberte ten, který se ve vaší situaci čte lépe.
Jak psát:
Pokyny
Student zkoušku složí s 50 a více body a se 75 a více body ji složí s přehledem. Do bloku if (body >= 50) místo komentáře napište vnořený příkaz if s podmínkou body >= 75, který vypíše Prospěl s přehledem, a s větví else, která vypíše Prospěl.
Změňte body na 60 a spusťte program. Měl by vypsat Prospěl.