- Писать ветвящийся код с
if,else ifиelse - Объединять условия с помощью
&&и|| - Понимать, когда использовать тернарный оператор и
switch
Каждый день ты принимаешь десятки решений: если идёт дождь — берёшь зонт, если поздно — вызываешь такси, если на счёте мало денег — откладываешь покупку. Программы тоже принимают такие решения — с помощью условных операторов.
if: если условие истинно
После ключевого слова if в круглых скобках пишут условие, а в фигурных скобках { } — код, который выполнится, если условие истинно, то есть блок. Если условие ложно, блок пропускается, и программа идёт дальше.
const temperature = 28;
if (temperature > 25) {
console.log('It is hot. Drink some water!');
}
console.log('Have a nice day');▸ Ожидаемый результат
It is hot. Drink some water! Have a nice day
temperature на 15 и запусти снова: первое сообщение исчезнет.else и else if
Блок else выполняется, когда условие ложно. Если вариантов больше двух, новые условия добавляют через else if. JavaScript проверяет условия сверху вниз и выполняет блок первого истинного — остальные уже не смотрит.
const score = 78;
if (score >= 90) {
console.log('Excellent');
} else if (score >= 70) {
console.log('Good');
} else if (score >= 50) {
console.log('Satisfactory');
} else {
console.log('Try again');
}▸ Ожидаемый результат
Good
Составные условия
Чтобы объединить несколько условий, используют логические операторы: && (И) требует, чтобы были истинны оба условия, а || (ИЛИ) — хотя бы одно. Допустим, кинотеатр по выходным даёт скидку тем, кому меньше 18 лет:
const age = 15;
const isWeekend = true;
if (age < 18 && isWeekend) {
console.log('Discount ticket: 3 AZN');
} else {
console.log('Regular ticket: 5 AZN');
}
const day = 'Sunday';
if (day === 'Saturday' || day === 'Sunday') {
console.log('No school today');
}▸ Ожидаемый результат
Discount ticket: 3 AZN No school today
&& работает как вентиль AND: выход истинен, только когда истинны оба входа. Переключись на OR и сравни с ||.Тернарный оператор
Если нужно просто выбрать одно из двух значений и сохранить его, есть краткая форма: условие ? значение1 : значение2. Если условие истинно, результат — значение1, иначе — значение2. Это тернарный оператор: он состоит из трёх частей.
const hour = 20;
const greeting = hour < 12 ? 'Good morning' : 'Good evening';
console.log(greeting);
const items = 1;
console.log(`You have ${items} ${items === 1 ? 'item' : 'items'} in the basket`);▸ Ожидаемый результат
Good evening You have 1 item in the basket
switch: много вариантов
Когда одну переменную нужно сравнить со многими конкретными значениями, switch читается легче длинной цепочки else if. Каждый case проверяет одно значение (строгим сравнением ===), а break выходит из switch. Если ни один case не подошёл, выполняется блок default.
const day = 'Saturday';
switch (day) {
case 'Saturday':
case 'Sunday':
console.log('Weekend!');
break;
case 'Friday':
console.log('Almost weekend');
break;
default:
console.log('Work day');
}▸ Ожидаемый результат
Weekend!
case 'Saturday': использует код следующего case — один ответ на два значения.const light = 'yellow';
switch (light) {
case 'green':
console.log('Go');
case 'yellow':
console.log('Get ready');
case 'red':
console.log('Stop');
}▸ Ожидаемый результат
Get ready Stop
| Конструкция | Когда использовать |
|---|---|
if / else if / else | любые условия: диапазоны (score >= 90), несколько переменных, сложные проверки |
? : | выбор одного из двух значений в одну строку |
switch | сравнение одной переменной со многими конкретными значениями |
Выведи оценку для score: 90 и выше — A, 75 и выше — B, 60 и выше — C, иначе — F. Затем с помощью тернарного оператора выведи passed (если балл 60 или больше) или failed.
const score = 83;
// 1) print the grade: A, B, C or F
// 2) print passed or failed with the ternary operator▸ Ожидаемый результат
B passed
Главное
- Блок
ifвыполняется, только если условие истинно;else— в противном случае. - В цепочке
else ifпобеждает первое истинное условие, поэтому самое строгое ставят наверх. &&требует истинности обоих условий,||— хотя бы одного.- Тернарный оператор
условие ? a : bвыбирает одно из двух значений. switchсравнивает значения через===; каждыйcaseзаканчивайbreak.
Проверь себя
Вопросов: 10. Каждый правильный ответ приносит XP.
const x = 7; что выведет if (x > 10) { console.log('A'); } else { console.log('B'); }?