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)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Dmitriy Pervyh Уровень 4
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 Уровень 7
4 января 2026
Жестко начхать! xD
Anonymous #3547521 Уровень 9
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); }
Роман Фролков Уровень 29
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 Уровень 42
15 августа 2025
Задача "Призывная кампания" должна идти после теории, описанной в "Сокращенная форма оператора if", а не до :(
Константин Уровень 4
3 августа 2025
Амиго на войне. Не мешать😂
diamond Уровень 3
7 июля 2025
что значит ==
Drofyyyy Уровень 3
9 июля 2025
=
Владислав Уровень 4
15 июля 2025
Грубо говоря равно. Просто знак '=' gрисваивает значение, "==" в комментариях используется чему именно равно(значение).
mr_mp3 Уровень 32
5 августа 2025
= это знак присвоения, а == знак сравнения
Anonymous #2679524 Уровень 1
20 июня 2025
Я маю оплату, не можу зайти знового комютера??????
Anonymous #3585174 Уровень 33
25 мая 2025
good
Mikhailo Bohatov Уровень 7
12 мая 2025
туда этих наглосаксов. человеческий язык это русский и никакой другой
Anonymous #3576609 Уровень 13
12 мая 2025
нет, русский язык не единственный (это знают те кто учились в школе) вот все языки мира: Албанский язык Норвежский язык Английский язык Персидский язык Арабский язык Польский язык Армянский язык Португальский язык Белорусский язык Румынский язык Болгарский язык Русский язык Венгерский язык Сербский язык (Сербохорватский) Вьетнамский язык Словацкий язык Голландский язык (Нидерландский) Словенский язык Древнегреческий язык (Греческий Древний) Таджикский язык Греческий (Новогреческий язык) Тайский язык Грузинский язык Татарский язык Дари (Фарси) Турецкий язык Датский язык Туркменский язык Иврит Украинский язык Испанский язык Узбекский язык Итальянский язык Фарси (Дари) Кыргызский язык Финский язык Казахский язык Фламандский язык Китайский язык Французский язык Корейский язык Хинди Латинский язык (Латынь) Хорватский язык (Сербохорватский) Латышский язык (Латвийский) Чешский язык Литовский язык Шведский язык Малазийский язык Эстонский язык Молдавский язык Японский язык Монгольский язык Немецкий язык Непальский язык
Mikhailo Bohatov Уровень 7
14 мая 2025
это типа предъява? ты может снала статью прочитаешь, а потом комметарии писать будешь?
Leano Уровень 4
20 апреля 2025
Обычное предложение авторам курса: в задачах или подсказках задачи или возможно в материалах лекций добавить требование о закрытии потока ввода в коде, если используется ввод в задачах 🙂 И в эталонном решении от автора, там поток ввода не закрыт :) Пример как закрывается поток:


Scanner console = new Scanner(System.in);

String name = console.nextLine();

System.out.println("Мое имя: " + name);

console.close();
Почему предлагаю? Лучше сразу приучить новичков закрывать поток, т.к в будущем при использовании того же сканнера - это нужно будет делать обязательно. Это упоминается только в статье после 2-го уровня "зачем" и "почему" это важно делать, а в самих лекциях курса нигде это не указано про это ни слова пока что :) Сама статья на всякий случай другим ученикам, может кто-то скипнул чтение статей: https://javarush.com/groups/posts/klass-scanner
Антон Уровень 8
9 мая 2025
когда лучше применять команду close()? после того как использовал имя? а если у тебя к примеру два сканнера (имя и возраст - как во второй задаче, то тут как правильно действовать?
Leano Уровень 4
10 мая 2025
В программе всегда создается один сканнер для одного из способов получения данных, в нашем случае это - System.in, который передается в конструктор при создании объекта Scanner (далее в темах будет объяснено что такое конструктор и создание объектов, пока просто можно писать как видишь)

Scanner scanner = new Scanner(System.in);
Закрывать его требуется, когда в программе тебе больше не придется использовать его. Пример:

Scanner scanner = new Scanner(System.in);
System.out.print("Введите имя: ");
String name = scanner.nextLine();

System.out.print("Введите возраст: ");
int age = scanner.nextInt();

scanner.close(); // закрываем в конце, после всех вводов
Илья Уровень 3
25 июня 2025
Спасибо за полезный ликбез, полностью согласен, лучше сразу учиться ходить без ходунков, дабы не спотыкаться по привычке в будущем!