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 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
}
}
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ