JavaRush /Курсы /JAVA 25 SELF /Условный оператор: if else

Условный оператор: if else

JAVA 25 SELF
3 уровень , 1 лекция
Открыта

1. Оператор if else

От программ было бы мало толку, если бы они делали одно и то же, независимо от того, как меняются внешние обстоятельства. Программе нужно уметь подстраиваться под разные ситуации и делать одни действия в одних случаях, другие — в других.

В Java это реализовано с помощью условного оператора — ключевых слов if и else, которые позволяют выполнять разные блоки команд в зависимости от правдивости условия.

Условный оператор состоит из трех частей: условия, команды 1 и команды 2. Если условие верно (истинно), выполняется команда 1, иначе выполняется команда 2. Команды никогда не выполняются одновременно. Общий вид этого оператора таков:


if (условие)
   команда1;
else
   команда2;
Условный оператор if-else

if переводится как «если», а else как «иначе». Человеческим языком это можно записать так:


Если условие истинно, то
   выполнить команда1;
иначе
   выполнить команда2;
Условный оператор if-else человеческим языком

Примеры:

// На экран будет выведена надпись: Вы еще ребенок

int age = 17;
if (age < 18)
   System.out.println("Вы еще ребенок");
else
   System.out.println("Вы уже взрослый");
// На экран будет выведена надпись: Тепло

int temperature = 5;
if (temperature < 0)
   System.out.println("На улице мороз");
else
   System.out.println("Тепло");
// На экран будет выведена надпись: Можно сдавать на права

int age = 18;
if (age == 18)
   System.out.println("Можно сдавать на права");
else
   System.out.println("Можно копить на машину");

2. Блок команд

Если при выполнении (или невыполнении) условия вы хотите, чтобы ваша программа исполнила несколько команд, их можно объединить в блок команд.

Чтобы объединить команды в блок, нужно «завернуть» их в фигурные скобки. Вот как это выглядит в общем случае:


{
   команда1;
   команда2;
   команда3;
}

Команд в блоке может быть сколько угодно. И даже ноль.

Примеры сочетания оператора if-else и блока команд:

// На экран будет выведена надпись: Ты еще ребенок. Не спорь со взрослыми

int age = 17;
if (age < 18)
{
   System.out.println("Ты еще ребенок");
   System.out.println("Не спорь со взрослыми");
}
else
{
   System.out.println("Вы уже взрослый");
   System.out.println("Ну и молодежь пошла");
}
// На экран будет выведена надпись: Тепло

int temperature = 5;
if (temperature < 0)
{
   System.out.println("На улице мороз");
   System.out.println("Шапку надень");
}
else
   System.out.println("Тепло");
// Будет выполнен пустой блок команд. На экран ничего не выведется. 

int age = 21;
if (age == 18)
   System.out.println("Можно получать права");
else
{
}

3. Сокращенный синтаксис оператора if

Если код в блоке else отсутствует, то его можно опустить. Тогда оператор if примет вид:


if (условие)
{
    команда1;
}
Условный оператор if

Пример:

int age = 19;
if (age >= 18)
{
    System.out.println("Вы совершеннолетний!");
}

Как это работает?

Если условие истинно, то выполняется блок кода. Если ложно, то ничего не происходит — программа идет дальше.

Блок else в программе есть, но он пустой (между фигурными скобками нет никаких команд). Его можно просто убрать: в программе от этого ничего не поменяется.

4. Комбинирование условий: else if

Иногда нужно проверить не просто «да/нет», а выбрать из нескольких вариантов. Тут на помощь приходит связка else if:

if (условие1)
{
    // Выполняется, если условие1 истинно
}
else if (условие2)
{
    // Выполняется, если условие2 истинно, а условие1 — ложно
}
else
{
    // Выполняется, если ни одно из условий выше не подошло
}

Пример:

int hour = 13;
if (hour < 12)
{
    System.out.println("Доброе утро!");
}
else if (hour < 18)
{
    System.out.println("Добрый день!");
}
else
{
    System.out.println("Добрый вечер!");
}

Что здесь происходит?

  • Если время до 12 — утро.
  • Если от 12 до 18 — день.
  • Если больше — вечер.
  • Программа выбирает только ОДИН из вариантов! Как только подходит условие — остальные даже не проверяются.

5. Схематическая иллюстрация: блок-схема ветвления

Вот как это выглядит в виде блок-схемы:

А если несколько условий:

Это очень напоминает развилки в настольных ролевых играх: идёшь налево — одно, направо — другое, прямо — ещё что-то!

6. Какие условия можно проверять?

Внутри круглых скобок после if должно быть ЛОГИЧЕСКОЕ выражение — результат которого true или false.

Основные операторы сравнения:

Оператор Значение Пример
==
Равно
x == 5
!=
Не равно
x != 10
>
Больше
x > 0
<
Меньше
age < 18
>=
Больше или равно
score >= 100
<=
Меньше или равно
count <= 50

Примеры условий:

if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)

Заметьте: = (один знак) — это присвоение. == (два знака) — сравнение. Это одна из самых популярных ошибок среди новичков! Если вы нечаянно напишете:

if (x = 5) // ОШИБКА!

— компилятор вас отругает, и очень правильно сделает.

7. Работа со строками в условиях

Сравнение с помощью == в Java работает корректно для чисел. Дробные числа сравнивать через == нежелательно, а строки сравнивать через == нельзя — для строк используйте метод equals(), который сравнивает содержимое строк (а не ссылки).

Подробнее о тонкостях сравнения строк мы ещё поговорим позже. А как правильно сравнивать строки — в примере ниже:

String password = console.nextLine();
if (password.equals("qwerty"))            // вызываем метод equals() и передаем в него вторую строку
{
    System.out.println("Вы вошли!");
}

8. Особенности и нюансы:

Фигурные скобки: нужны или нет?

Если после if или else только одна команда, фигурные скобки можно опустить:

if (age > 18)
    System.out.println("Вам больше 18!");

// Но безопаснее ВСЕГДА их писать:
if (age > 18)
{
    System.out.println("Вам больше 18!");
}

Совет: пишите всегда со скобками. Это защитит от кучи ошибок, особенно при расширении кода.

Логические ошибки: внимательнее с условиями!

Если напишете так:

if (age > 18)
    System.out.println("Вам больше 18!");
    System.out.println("Добро пожаловать!");

То компилятор будет читать этот код так:

if (age > 18)
{
    System.out.println("Вам больше 18!");
}

System.out.println("Добро пожаловать!");

Вторая строка всегда будет выполняться — скобки нужны, чтобы обе строки были внутри «ветки».

1
Задача
JAVA 25 SELF, 3 уровень, 1 лекция
Недоступна
Покупка билета в кино 🎬
Покупка билета в кино 🎬
1
Задача
JAVA 25 SELF, 3 уровень, 1 лекция
Недоступна
Проверка погоды на улице ❄️
Проверка погоды на улице ❄️
1
Задача
JAVA 25 SELF, 3 уровень, 1 лекция
Недоступна
Разблокировка аккаунта 🔒
Разблокировка аккаунта 🔒
1
Задача
JAVA 25 SELF, 3 уровень, 1 лекция
Недоступна
Приветствие по времени суток ☀️
Приветствие по времени суток ☀️
Комментарии (12)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Geocancer Уровень 7
19 января 2026
Всем удачи! Двигайтесь дальше!!
Sirius_ Уровень 6
17 января 2026
Очень интересные задачи!
Дмитрий Уровень 4
17 октября 2025
Пока все идет до сих пор как по маслецу ☺️ Подача хорошая, как в предыдущем курсе Java. Задачи простые. Но скорее от того, что уже имею представление и немного учил Пайтон
Серега Батенин Уровень 12
25 сентября 2025
Кто пустил шарписта к коду на java? :D
Ksanders Уровень 32
21 сентября 2025
Все задачи этого нового курса почему-то с уровнем сложности "medium" идут, хотя если сравнивать их с оригинальным курсом - пока уровень почти у всех "easy".
Alina Gabidulina Уровень 32
14 сентября 2025
/* Комментарий удален */
Мария Уровень 39
15 сентября 2025
Почему же не изучали? Это всё было в лекциях. Например equals в седьмом пункте данной лекции
REK.QA Уровень 4
8 сентября 2025
Про последнюю задачу. Мы ж && не изучали? Почему так нельзя - 12 <= currentHour <= 18?
Natasha Уровень 5
9 сентября 2025
там и && не нужно - достаточно else if (currentHour <= 18) - потому что к выполнению этого условия перейдёт только в случае если currentHour > 12
karpavevg Уровень 12
14 сентября 2025
Немного Занудомена в ленту :)) >= 12
Big198801 Уровень 31
15 сентября 2025
вроде на питоне можно такую конструкцию писать, а вот в джаве - точно нет
Нэй Уровень 1
28 октября 2025
Вычисление выражения выполняется слева направо. В операторе сравнения всегда участвуют 2 операнда. Давай попробуем вычислить твоё выражение. Сначала вычисляется 12 <= currentHour(в данном случае 20), ответ true, логическое значение, тип boolean. Дальше true <= 18, на этом месте ошибка boolean нельзя сравнить с int.