JavaRush /Курсы /Java Syntax Pro /Условный оператор

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

Java Syntax Pro
3 уровень, 0 лекция
Открыта

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

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

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

Условный оператор состоит из трех частей: условия, команды 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

Иногда бывает, что какую-то команду или команды нужно выполнить, если условие истинно, а если оно ложное, ничего делать не нужно.

Например, мы можем задать команду Если приехал автобус номер 62, зайти в него, а на отсутствие автобуса никак не реагировать. В Java при таком развитии событий мы можем использовать сокращенную форму оператора if — без блока else.

Другими словами, если команду(ы) нужно выполнять, только если условие истинно и нет команд, которые нужно выполнять, когда условие ложно, нужно использовать сокращенную запись оператора if — без блока else. Она имеет вид:

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

Ниже приведены три эквивалентные записи:

Код Пояснение
int age = 18;
if (age == 18)
{
   System.out.println("Явитесь в военкомат");
}
else
{
}
На экран будет выведена надпись:
Явитесь в военкомат

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

Код Пояснение
int age = 18;
if (age == 18)
{
   System.out.println("Явитесь в военкомат");
}
На экран будет выведена надпись:
Явитесь в военкомат
int age = 18;
if (age == 18)
   System.out.println("Явитесь в военкомат");
На экран будет выведена надпись:
Явитесь в военкомат


Комментарии (581)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Егор Уровень 6
1 сентября 2026
Желаю всем удачи! Дорогу осилит идущий!
Якуб Уровень 26
21 августа 2026
Наконец-то можно комментарии оставлять :D Всем начинающим - желаю удачи, и не останавливайтесь. Терпение и труд всё перетрут
Maxim Dmitriev Уровень 10
28 февраля 2026
наконец то
Dmitriy Pervyh Уровень 6
14 января 2026
я пришел к такому ответу по второй задачи ДАЛЬШЕ СПОЙЛЕР, ОСТОРОЖНО!! . . . . . . . . . . import java.util.Scanner; public class Main{ public static void main(String [] args){ Scanner console = new Scanner(System.in); System.out.println("Назови свое имя"); String name = console.nextLine(); System.out.println("Назови свой возраст"); int vozrast = console.nextInt(); console.close(); if ( vozrast>=18 && vozrast<=28 ){ System.out.println(name + ", явитесь в военкомат"); } }
MaryAm Уровень 5
9 декабря 2025
А кто-нибудь переживает за Амиго и город или не обращает внимание на историю?)
Valeroy Уровень 1
4 января 2026
Жестко начхать! xD
Anonymous #3547521 Уровень 10
13 января 2026
Волнительная история. Переживаю 😢 А вы?
Денис Уровень 4
11 октября 2025
не особо понимаю, почему мой вариант не правильный. в IDE все работает Scanner termo = new Scanner(System.in); if(termo.nextInt() < 0){ System.out.println(cold); }else if(termo.nextInt()>=0){ System.out.println(warm); }
Роман Фролков Уровень 30
13 октября 2025
Ты вызываешь дважды termo.nextInt(), т.е. У тебя дважды вводится значение из консоли. Наверное более правильный вариант убрать второе использование метода. Scanner termo = new Scanner(System.in); if(termo.nextInt() < 0) { System.out.println(cold); } else { System.out.println(warm); }
Anonymous #3613348 Уровень 112
15 августа 2025
Задача "Призывная кампания" должна идти после теории, описанной в "Сокращенная форма оператора if", а не до :(
Константин Уровень 4
3 августа 2025
Амиго на войне. Не мешать😂
diamond Уровень 3
7 июля 2025
что значит ==
Drofyyyy Уровень 3
9 июля 2025
=
Владислав Уровень 7
15 июля 2025
Грубо говоря равно. Просто знак '=' gрисваивает значение, "==" в комментариях используется чему именно равно(значение).
mr_mp3 Уровень 32
5 августа 2025
= это знак присвоения, а == знак сравнения
Anonymous #2679524 Уровень 8
20 июня 2025
Я маю оплату, не можу зайти знового комютера??????