Оператор if-else в Java является самым базовым из всех операторов управления потоком. Оператор if-else сообщает программе, что нужно выполнить определенный блок только в том случае, если конкретный тест даст результат true, в противном случае выполнить альтернативный блок, если условие ложно.
if и else являются зарезервированными ключевыми словами в Java и не могут использоваться в качестве других идентификаторов.
1. Синтаксис
Простой оператор if-else записывается следующим образом. Он начинается с обязательного оператора if, за которым следует необязательная часть else.
if(condition) {//statement-1} else {//statement-2}
Условие должно быть булевым выражением и должно оцениваться как true или false. Если условие оценивается как true, выполняется statement-1. В противном случае выполняется statement-2.
Обратите внимание, что блок else необязателен. Мы можем написать оператор как:
if(condition) {//statement-1}
2. Пример «если-иначе»
Давайте рассмотрим пример оператора if-else. В следующей программе мы проверяем, больше ли возраст сотрудника 18 лет. В обоих случаях мы выводим, что сотрудник является несовершеннолетним или совершеннолетним.
int age = employee.getAge();if(age > 18) {System.out.println("Employee is adult");}else {System.out.println("Employee is minor");}
3. Вложенные операторы if-else
Операторы if-else также могут быть вложенными. Внутренние операторы if-else будут выполняться на основе результатов оценки внешних условных операторов.
В следующей программе мы используем оператор else-if для добавления дополнительного условия, которое будет оцениваться только тогда, когда первое условие в блоке if оценивается как ложное.
int age = employee.getAge();if(age > 60) {System.out.println("Employee is retired");} else if(age > 18) { //Executes only when if condition is false i.e. age is less than 60System.out.println("Employee is adult");} else {System.out.println("Employee is minor");}
4. Используйте фигурные скобки для группировки нескольких операторов
Рассмотрим следующую программу:
int num1, num2, num3 = 10;if(num1 > 40)num2 = num2 + 10;num3 = num3 + 10;elsenum2 = num2 - 10;num3 = num3 - 10;
Вышеприведенная программа не скомпилируется. Что не так с вышеприведенной программой? Ответ в том, что мы можем поместить только один оператор между if и else, в любом операторе if-else без использования фигурных скобок.
В случае нескольких операторов мы должны объединить операторы в один блок операторов с помощью фигурных скобок, например:
if(num1 > 40) {num2 = num2 + 10;num3 = num3 + 10;} else {num2 = num2 - 10;num3 = num3 - 10;}
5. Использование тернарного оператора для замены простого if-else
Мы также можем использовать тернарный оператор вместо простого оператора if-else, чтобы сделать код более кратким и читабельным.
Рассмотрим простой оператор if-else, который проверяет, больше или меньше ли число некоторого значения, и сохраняет значение в переменной.
boolean isAdult;if(age > 18) {isAdult = true;} else {isAdult = false;}
Аналогичные инструкции можно написать с помощью тернарного оператора следующим образом. Посмотрите, как чисто.
boolean isAdult = age > 18 ? true : false;