Условия (if/else/switch) в JavaScript (Node.js): подробное руководство
Условия в программировании: if, else, switch
Введение: зачем нужны условия?
Представь, что ты робот, который умеет выполнять только одну команду за другой строго по порядку. Но в реальной жизни всё не так просто! Например:
- «Если на улице дождь, возьми зонтик, иначе надень панамку».
- «Если у тебя есть 100 рублей, купи мороженое, иначе просто погуляй».
В программировании такие ситуации называются условиями. Они позволяют программе принимать решения и выполнять разные действия в зависимости от данных.
Основной синтаксис: if и else
Самая простая конструкция выглядит так:
if (условие) {
// код, который выполнится, если условие верно (true)
} else {
// код, который выполнится, если условие неверно (false)
}
Условие — это выражение, которое может быть либо правдой (true), либо ложью (false).
Пример 1: проверка возраста
Программа спрашивает возраст и говорит, можно ли смотреть фильм (если возраст больше 12 лет):
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('Сколько тебе лет? ', (age) => {
age = Number(age);
if (age > 12) {
console.log('Фильм можно смотреть!');
} else {
console.log('Извини, этот фильм не для тебя.');
}
readline.close();
});
Операторы сравнения
Чтобы записать условие, мы используем специальные значки:
>— больше<— меньше>=— больше или равно<=— меньше или равно===— строго равно (проверяет и значение, и тип)!==— не равно
Пример 2: чётное или нечётное число
Используем оператор % (остаток от деления). Если число делится на 2 без остатка — оно чётное.
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('Введите число: ', (num) => {
num = Number(num);
if (num % 2 === 0) {
console.log(num + ' — это чётное число!');
} else {
console.log(num + ' — это нечётное число!');
}
readline.close();
});
Сложные условия: else if
Когда нужно проверить несколько вариантов, мы используем цепочку if ... else if ... else.
if (условие1) {
// действие 1
} else if (условие2) {
// действие 2
} else {
// действие, если ни одно условие не подошло
}
Пример 3: парк аттракционов
Определяем возрастную зону для посетителя:
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('Сколько лет посетителю? ', (age) => {
age = Number(age);
if (age < 3) {
console.log('Только комната для малышей.');
} else if (age <= 7) {
console.log('Детская зона (карусели).');
} else if (age <= 14) {
console.log('Подростковая зона (американские горки).');
} else if (age <= 60) {
console.log('Взрослая зона (экстремальные аттракционы).');
} else {
console.log('Зона отдыха (скамейки и кафе).');
}
readline.close();
});
Логические операторы: И (&&), ИЛИ (||), НЕ (!)
Иногда нужно проверить сразу несколько условий.
&&— «И»: верно, если оба условия верны||— «ИЛИ»: верно, если хотя бы одно условие верно!— «НЕ»: меняет true на false и наоборот
Пример 4: магазин сладостей
Скидка даётся, если сумма покупки больше 1000 рублей И покупатель участник клуба.
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('Сумма покупки: ', (sum) => {
sum = Number(sum);
readline.question('Вы участник клуба? (да/нет): ', (member) => {
if (sum > 1000 && member === 'да') {
console.log('Скидка 20%! Ваша цена: ' + (sum * 0.8));
} else if (sum > 1000) {
console.log('Скидка 10%! Ваша цена: ' + (sum * 0.9));
} else {
console.log('Скидки нет. Итог: ' + sum);
}
readline.close();
});
});
Конструкция switch
Когда нужно проверить одну переменную на много разных значений, удобнее использовать switch. Он работает как «выключатель»: перебирает варианты.
switch (выражение) {
case значение1:
// код
break;
case значение2:
// код
break;
default:
// код, если ни один case не подошёл
}
Важно! Не забывай писать break — иначе программа «провалится» дальше и выполнит код из следующего case.
Пример 5: день недели
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('Введите номер дня недели (1-7): ', (day) => {
switch (Number(day)) {
case 1:
console.log('Понедельник — начало недели');
break;
case 2:
console.log('Вторник — рабочий день');
break;
case 3:
console.log('Среда — маленькая пятница');
break;
case 4:
case 5:
console.log('Скоро выходные!');
break;
case 6:
case 7:
console.log('Ура, выходной!');
break;
default:
console.log('Нет такого дня недели');
}
readline.close();
});
Частые ошибки новичков
- Путают = и ===
=— это присваивание (положить значение в переменную).
===— это сравнение (проверить, равны ли значения).
Ошибка:if (age = 18)— всегда будет true! - Забывают break в switch
Если не поставить break, программа выполнит все следующие case подряд. - Путают порядок условий
В цепочке if/else if проверка идёт сверху вниз. Как только нашлось верное условие — остальные пропускаются. - Не ставят фигурные скобки {}
Если внутри if только одна команда, скобки можно не ставить. Но для начинающих лучше всегда их ставить — так понятнее и безопаснее.
Итоговый пример: путешествие в горы
Алекс хочет понять сложность маршрута. Если высота меньше 1000 метров — лёгкий маршрут, от 1000 до 2000 — средний, выше 2000 — сложный. Если идёт дождь — маршрут отменяется.
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('Высота маршрута (метров): ', (height) => {
height = Number(height);
readline.question('Идёт дождь? (да/нет): ', (rain) => {
if (rain === 'да') {
console.log('Маршрут отменяется из-за дождя!');
} else if (height < 1000) {
console.log('Лёгкий маршрут. Можно брать детей!');
} else if (height <= 2000) {
console.log('Средняя сложность. Нужна хорошая обувь.');
} else {
console.log('Сложный маршрут! Требуется специальное снаряжение.');
}
readline.close();
});
});
Теперь ты знаешь главное: условия — это способ научить программу думать. Чем сложнее условия, тем умнее становится твоя программа. Пробуй, экспериментируй и не бойся ошибок — на них учатся!