11. Операторы условий и многозначного выбора
Условия
В JavaScript конструкция if...else
используется для выполнения кода в зависимости от условий. Она позволяет проверять условие и выполнять определённый блок кода, если это условие истинно (true). Если условие ложно (false), можно выполнить альтернативный блок кода.
Синтаксис if...else
if (условие) {
// Этот блок выполнится, если условие истинно
} else {
// Этот блок выполнится, если условие ложно
}
Пример использования
let число = 10;
if (число > 5) {
console.log("Число больше 5");
} else {
console.log("Число не больше 5");
}
В этом примере:
- Если переменная
число
больше 5, выполнится первый блок кода, и на экран выведется сообщение"Число больше 5"
. - Если
число
меньше или равно 5, выполнится блокelse
, и на экран выведется"Число не больше 5"
.
if...else if...else
Также можно использовать несколько условий с помощью else if
:
let число = 7;
if (число > 10) {
console.log("Число больше 10");
} else if (число > 5) {
console.log("Число больше 5, но меньше или равно 10");
} else {
console.log("Число меньше или равно 5");
}
Здесь:
- Если
число
больше 10, выполнится первый блок. - Если
число
больше 5, но меньше или равно 10, выполнится второй блокelse if
. - Если ни одно из условий не выполнено, выполнится блок
else
.
Таким образом, if...else
помогает контролировать выполнение кода на основе условий, что делает его мощным инструментом в программировании.
Многозначный выбор
Конструкция switch...case
в JavaScript используется, когда нужно выполнить разные блоки кода в зависимости от значения переменной или выражения. Это особенно удобно, когда у нас много значений, которые нужно проверить, поскольку switch...case
может быть проще и более наглядным, чем серия if...else if
.
Синтаксис switch...case
switch (выражение) {
case значение1:
// Код, выполняемый, если выражение === значение1
break;
case значение2:
// Код, выполняемый, если выражение === значение2
break;
// можно добавлять столько case, сколько нужно
default:
// Код, выполняемый, если ни один case не подошёл
}
Обратите внимание: каждая секция case
обычно заканчивается break
, чтобы выйти из switch
, иначе код продолжит выполняться для всех последующих случаев. Это называется "проваливание" (fall-through) и иногда используется специально, но обычно break
помогает избежать этого.
Пример использования switch...case
let деньНедели = 3;
switch (деньНедели) {
case 1:
console.log("Понедельник");
break;
case 2:
console.log("Вторник");
break;
case 3:
console.log("Среда");
break;
case 4:
console.log("Четверг");
break;
case 5:
console.log("Пятница");
break;
case 6:
console.log("Суббота");
break;
case 7:
console.log("Воскресенье");
break;
default:
console.log("Некорректный день недели");
}
В этом примере:
- Переменная
деньНедели
равна 3, поэтому выполнится блокcase 3
, и выведется"Среда"
. - Если
деньНедели
будет другим числом, которое не соответствует ни одномуcase
, выполнится блокdefault
, выводя сообщение"Некорректный день недели"
.
Пример с проваливанием (fall-through)
Иногда проваливание может быть полезным, например, когда несколько значений должны обрабатываться одинаково:
let оценка = "3";
switch (оценка) {
case "5":
console.log("Отлично!");
break;
case "4":
case "3":
console.log("Хорошо");
break;
case "2":
console.log("Удовлетворительно");
break;
default:
console.log("Попробуйте снова");
}
Здесь:
- Если
оценка
равна"3"
или"4"
, выведется"Хорошо"
. - Если
оценка
— любое другое значение, не соответствующееcase
, выполнится блокdefault
с сообщением"Попробуйте снова"
.
Краткий итог
switch...case
— удобный способ для обработки множества условий, когда проверка идёт на совпадение конкретных значений.