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 — день.
  • Якщо 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("Ласкаво просимо!");

Другий рядок завжди виконуватиметься — дужки потрібні, щоб обидва рядки були всередині «гілки».

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ