1. Последовательность if
-ов
Иногда в программе нужно сделать много разных действий в зависимости от значения какой-то переменной или от значения какого-то выражения.
Допустим, задача звучит так:
- Если температура выше
20
градусов — надеть рубашку - Если температура выше
10
градусов и меньше (или равна)20
— надеть свитер - Если температура выше
0
градусов и меньше (или равна)10
— надеть плащ - Если температура ниже
0
градусов — надеть пальто.
Как это можно представить в коде:
int temperature = 9;
if (temperature > 20)
System.out.println("надеть рубашку");
else // тут температура меньше (или равна) 20
{
if (temperature > 10)
System.out.println("надеть свитер");
else // тут температура меньше (или равна) 10
{
if (temperature > 0)
System.out.println("надеть плащ");
else // тут температура меньше 0
System.out.println("надеть пальто");
}
}
Операторы if-else
можно вкладывать друг в друга, и таким образом реализовывать в программе достаточно сложную логику.
Но вышеприведенный пример интересен еще и тем, что именно в его случае фигурные скобки можно опустить, и код станет немного проще:
int temperature = 9;
if (temperature > 20)
System.out.println("надеть рубашку");
else // тут температура меньше (или равна) 20
if (temperature > 10)
System.out.println("надеть свитер");
else // тут температура меньше (или равна) 10
if (temperature > 0)
System.out.println("надеть плащ");
else // тут температура меньше 0
System.out.println("надеть пальто");
Хотя обычно такую конструкцию программисты записывают немного по-иному:
int temperature = 9;
if (temperature > 20)
System.out.println("надеть рубашку");
else if (temperature > 10) // тут температура меньше (или равна) 20
System.out.println("надеть свитер");
else if (temperature > 0) // тут температура меньше (или равна) 10
System.out.println("надеть плащ");
else // тут температура меньше 0
System.out.println("надеть пальто");
Все три приведенные примера эквивалентны.
2. Нюансы else
Если в конструкции if-else
не расставлены фигурные скобки, else
относится к предыдущему (ближайшему к нему) if
-у.
Пример:
Наш код | Как он будет работать |
---|---|
|
|
Если смотреть на код в левой части, кажется, что на экран будет выведена надпись «Можно не работать». Однако это не так. На самом деле else
и команда «Можно не работать» относятся ко второму (ближайшему) if
-у.
В коде справа красным выделены связанные if
и else
. Также специально расставлены скобки, однозначно показывающие порядок выполнения действий. Надпись Можно не работать никогда не выводится на экран при age
больше 60
😛
3. Пример использования оператора if-else
Раз уж мы так хорошо разобрали оператор if-else
, приведем пример:
import java.util.Scanner;
public class Solution {
public static void main(String[] args)
{
Scanner console = new Scanner(System.in); // создаем объект Scanner
int a = console.nextInt(); // читаем с клавиатуры первое число
int b = console.nextInt(); // читаем с клавиатуры второе число
if (a < b) // если a меньше b
System.out.println(a); // выводим на экран a
else // иначе
System.out.println(b); // выводим на экран b
}
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ