Привет! Наши программы уже умеют хранить данные в переменных и производить вычисления. Но пока они похожи на очень аккуратного, но бесхитростного помощника, который всегда выполняет одни и те же действия, независимо от обстоятельств.
А что, если мы хотим, чтобы программа вела себя по-разному в разных ситуациях? Например:
- Если на улице дождь — вывести «Возьми зонт!».
- Если пользователь старше 18 лет — разрешить доступ.
- Если сумма на счету достаточна — выполнить покупку.
Сегодня мы научимся именно этому — принимать решения в коде с помощью операторов if, else if и else.
Цель урока: Научиться писать программы, которые выбирают разные пути выполнения в зависимости от условий.
Шаг 1: Простая аналогия — «Если → то»
Всё работает по принципу, знакомому с детства: «ЕСЛИ выполняется условие, ТО сделай это».
Представь алгоритм для автопилота:
ЕСЛИ впереди красный свет
ТО остановиться
ИНАЧЕ ЕСЛИ впереди зелёный свет
ТО продолжить движение
ИНАЧЕ (жёлтый)
ТО приготовиться к остановке
Оператор if в Java — это формальная запись таких правил.
Шаг 2: Базовый синтаксис if
Синтаксис прямолинеен: if ( условие ) { блок кода }. Условие — это выражение, которое возвращает true (истина) или false (ложь).
Что происходит:
- Мы создали логическую переменную isRaining и присвоили ей значение true.
- Ключевое слово if проверяет условие в круглых скобках.
- Если условие истинно (true) — выполняется блок кода внутри фигурных скобок {}.
- Если условие ложно (false) — блок кода внутри if пропускается, программа переходит к следующей строке (System.out.println("Программа продолжает работу...")).
Запусти код, затем измени isRaining на false и увидишь разницу.
Шаг 3: Добавляем ветку else («иначе»)
Часто нужно предусмотреть действие на случай, если условие не выполнилось.
Поменяй значение wallet на 250 и посмотри, как изменится поведение программы.
Шаг 4: Множественный выбор с else if
Когда вариантов больше двух, на помощь приходит else if («иначе если»). Программа проверяет условия сверху вниз и выполняет блок кода первого истинного условия.
Важно: Порядок условий критичен! Если бы мы начали с if (examScore >= 60), то для 95 баллов сработал бы первый же блок, и до проверки >=90 дело не дошло бы.
Шаг 5: Сложные условия (&&, ||, !)
Часто одно условие — это недостаточно. Нужно проверить несколько факторов одновременно.
- && (Логическое И): условие1 && условие2 — истинно, только если оба условия истинны.
- || (Логическое ИЛИ): условие1 || условие2 — истинно, если хотя бы одно из условий истинно.
- ! (Логическое НЕ): !условие — инвертирует значение (делает true → false, а false → true).
Поэкспериментируй, меняя значения переменных.
Шаг 6: Практика: мини-игра «Угадай число»
Соберём всё вместе! Программа загадывает число, а пользователь пытается его угадать.
Этот пример впервые использует Scanner для ввода данных — настоящая интерактивность!
Итог урока
Сегодня ты приручил логику выбора. Теперь твои программы умеют:
✅ Реагировать на обстоятельства (базовый if).
✅ Предусматривать альтернативы (else).
✅ Выбирать из множества вариантов (else if).
✅ Оценивать сложные условия (&&, ||, !).
Это огромный скачок. Теперь твой код может быть гибким и интеллектуальным.
Домашнее задание
- «Умный термостат». Напиши программу, которая советует, как одеться, в зависимости от температуры за окном (int temperature).
Если ниже -10 → «Мороз! Надень пуховик».
Если от -10 до +15 → «Прохладно. Куртка нужна».
Если от +16 до +25 → «Тепло. Можно в футболке».
Если выше +25 → «Жарко! Шорты и майка». - Проверка пароля. Объяви две переменные: String savedPassword = "qwerty123" и String userInput. Сравни их с помощью if-else и выведи «Доступ разрешён» или «Неверный пароль». Усложнение: Добавь проверку длины введённого пароля (userInput.length() < 8).
- Калькулятор скидки. Пользователь вводит сумму покупки (double purchaseAmount). Программа рассчитывает скидку:
5% — если сумма от 5000 до 10000.
10% — если сумма больше 10000.
Выводит итоговую сумму к оплате.
💡 Совет: Для заданий 2 и 3 используй Scanner из нашего примера с игрой, чтобы принимать данные от пользователя.
В следующей статье мы освоим циклы — чтобы заставить компьютер повторять скучную работу за нас, будь то вывод 100 строк или перебор данных.
Успехов в практике! Как всегда, жду твои вопросы и решения в комментариях.