Вложенные условия
Блок кода может содержать любой код, даже другую инструкцию if. if внутри блока другого if называется вложенным условием. Оно полезно, когда один вопрос имеет смысл только после другого. В кино, например, мы сначала проверяем, есть ли у зрителя билет, и только потом — сколько ему лет:
const hasTicket = true;
const age = 15;
if (hasTicket) {
if (age >= 18) {
console.log("Приятного просмотра");
} else {
console.log("Извините, этот фильм только для взрослых");
}
} else {
console.log("Сначала купите билет");
}Это выведет:
Извините, этот фильм только для взрослыхВнутренняя инструкция if выполняется, только когда hasTicket истинно. Каждый вложенный блок сдвигается ещё на 4 пробела, чтобы было видно, какие } и какой else относятся к какому if. Без отступов вложенные условия быстро становятся запутанными.
Вложенные условия часто можно переписать с помощью логических операторов и else if. Этот код делает то же самое:
const hasTicket = true;
const age = 15;
if (hasTicket && age >= 18) {
console.log("Приятного просмотра");
} else if (hasTicket) {
console.log("Извините, этот фильм только для взрослых");
} else {
console.log("Сначала купите билет");
}Это выведет:
Извините, этот фильм только для взрослыхПрограмма доходит до else if (hasTicket), только когда первое условие ложно. А при наличии билета это значит, что посетителю нет 18 лет. Ни один из способов не ошибочен: выберите тот, который в вашей ситуации читается легче.
Задание
- 1
Студент сдаёт экзамен, набрав 50 баллов или больше, а набрав 75 или больше, сдаёт его с отличием. В блоке
if (points >= 50)на месте комментария напишите вложенную инструкциюifс условиемpoints >= 75, которая выводитСдано с отличием, и с веткойelse, которая выводитСдано. - 2
Измените
pointsна60и запустите программу. Она должна вывестиСдано.