⚡ JavaScript

Условия (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();
});

Частые ошибки новичков

  1. Путают = и ===
    = — это присваивание (положить значение в переменную).
    === — это сравнение (проверить, равны ли значения).
    Ошибка: if (age = 18) — всегда будет true!
  2. Забывают break в switch
    Если не поставить break, программа выполнит все следующие case подряд.
  3. Путают порядок условий
    В цепочке if/else if проверка идёт сверху вниз. Как только нашлось верное условие — остальные пропускаются.
  4. Не ставят фигурные скобки {}
    Если внутри 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();
  });
});

Теперь ты знаешь главное: условия — это способ научить программу думать. Чем сложнее условия, тем умнее становится твоя программа. Пробуй, экспериментируй и не бойся ошибок — на них учатся!