1. Синтаксис и базовая структура if
Представьте себе кофемашину, которая всегда наливает кофе, независимо от того, положили вы стакан или нет. Не очень, правда? Аналогично, большинство программ должны анализировать ситуацию и принимать решения: если пользователь ввёл правильный пароль — впустить, если нет — отказать; если возраст больше 18 — показать фильм, если меньше — отправить спать.
В программировании для таких "развилок" используют условные операторы. В JavaScript (и во многих других языках) для этого служит команда if — если перевести на русский, то это просто "если".
Минимальный вариант условного оператора выглядит так:
if (условие) {
// блок кода, который выполнится, если условие истинно
}
- if — ключевое слово, которое говорит: "А ну-ка, проверь!"
- (условие) — выражение, которое возвращает true или false (истина или ложь).
- { ... } — блок кода, который выполнится, если условие истинно.
Пример 1: Проверяем, что число положительное
let number = 5;
if (number > 0) {
console.log("Число положительное!");
}
Если number больше нуля, программа напечатает: "Число положительное!"
Что происходит, если условие ложно?
Если условие не выполняется (number <= 0), то код внутри фигурных скобок просто пропускается.
2. else — иначе!
Иногда нужно выполнить не только действие "если да", но и "если нет". Для этого есть команда else (иначе):
if (условие) {
// если условие истинно
} else {
// если условие ложно
}
Пример 2: Проверяем, положительное ли число
let number = -3;
if (number > 0) {
console.log("Число положительное!");
} else {
console.log("Число неположительное!");
}
В этом примере, если number больше нуля, программа напечатает "Число положительное!", иначе — "Число неположительное!".
3. Блок кода: зачем нужны фигурные скобки?
В JavaScript блок кода — это всё, что находится внутри { ... }. Внутри блока может быть одна или несколько команд.
Важно: Если после if или else вы пишете только одну команду, фигурные скобки можно опустить:
if (number > 0)
console.log("Плюсик!");
else
console.log("Минусик!");
Но опытные программисты советуют ВСЕГДА ставить скобки, даже если внутри только одна команда. Почему? Потому что если вы потом добавите ещё одну строку, а скобки забыли — получите ошибку, которую не всегда просто заметить.
Пример плохого кода:
let number = 10;
if (number > 0)
console.log("Плюсик!");
console.log("Это всегда выведется!"); // Ой!
В этом примере вторая строка всегда выполнится, независимо от условия. Браузер увидит ваш код так:
let number = 10;
if (number > 0) {
console.log("Плюсик!");
}
console.log("Это всегда выведется!"); // Ой!
Чтобы не попадать в такие ловушки, используйте скобки:
if (number > 0) {
console.log("Плюсик!");
console.log("Это только если число больше нуля!");
}
4. Как работает условие (выражение внутри if)
Внутри круглых скобок после if пишется выражение, которое возвращает значение типа boolean — то есть либо true (истина), либо false (ложь).
Примеры условий:
- a > b — a больше b?
- x == 0 — x равен нулю?
- age >= 18 — возраст не меньше 18?
Пример 3: Проверяем, чётное ли число
let number = 8;
if (number % 2 == 0) {
console.log("Число чётное!");
} else {
console.log("Число нечётное!");
}
5. if без else
Иногда нам нужно выполнить действие только если условие выполняется, а если нет — просто ничего не делать. Для этого достаточно одного if:
if (баланс > 0) {
console.log("Вы можете снять деньги!");
}
// Если баланс <= 0, ничего не произойдет
Можно вкладывать один if внутрь другого — так строятся более сложные "развилки". Но подробнее о вложенных и цепочках условий мы поговорим в следующей лекции.
6. Практические примеры
Давайте попробуем сделать простую программу, которая приветствует пользователя по возрасту. В JavaScript для получения ввода от пользователя в браузере часто используют prompt(), а в среде Node.js (для серверных приложений или скриптов) нужны дополнительные модули. Для простоты будем использовать prompt для симуляции ввода.
const age = prompt("Введите ваш возраст:");
if (age >= 18) {
console.log("Добро пожаловать во взрослую жизнь!");
} else {
console.log("Вам ещё рано! Учитесь и отдыхайте :)");
}
Как работает:
- Программа спрашивает возраст.
- Если возраст 18 или больше — поздравляет.
- Если меньше — даёт совет.
Пример 2: Проверка пароля (очень простая)
const password = prompt("Введите пароль:");
if (password === "qwerty123") { // Используем строгое сравнение ===
console.log("Доступ разрешён!");
} else {
console.log("Пароль неверный!");
}
7. Типичные ошибки при работе с if/else
Ошибка №1: Пропущены фигурные скобки
Очень часто новички забывают скобки, особенно если условие одно. Потом добавляют ещё одну строку — и программа ведёт себя не так, как ожидается. Всегда ставьте { } даже для одной команды!
Ошибка №2: Ошибки в условиях
Иногда путают операторы сравнения: вместо == пишут =, или забывают, что = — это присваивание значения, а == — сравнение.
if (a = 5) // Ошибка! Нужно a == 5
Ошибка №3: Деление на ноль внутри условия
Если вы пишете условие типа if (x / y > 2), а y может быть нулём, то получите ошибку выполнения. Всегда проверяйте делитель!
Ошибка №4: Всегда выполняется только одна ветка
Иногда студенты думают, что можно написать два отдельных if, и оба сработают как else if. Но если условия пересекаются — оба блока могут выполниться. Если нужен выбор "или-или", используйте конструкцию if ... else.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ