Ключевой момент: выражение if-else определяет путь выполнения в зависимости от того, является ли условие истиной или ложью.
Одновариантное выражение if выполняет действие, если определённое условие является true (истиной). Если условие false (ложь), то ничего не делается. Но что если вы хотите принять альтернативные меры, когда условие false? Вы можете использовать двухвариантную инструкцию if-else. Действие, которое определяет двухвариантная инструкция if-else, различается в зависимости от того, является условие true или false.
Далее синтаксис двухвариантной инструкции if-else:
if (булево-выражение) { инструкция(ии)-на-случай-true; } else { инструкция(ии)-на-случай-false; }
Если boolean-expression (булево-выражение) сводится к true, то выполняются инструкция(ии) из блока true; в противном случае выполняются инструкция(ии) из блока false. В качестве примера рассмотрим следующий код:
if (radius >= 0) { area = radius * radius * PI; System.out.println("Площадь круга радиусом " + radius + " равна " + area); } else { System.out.println("Отрицательный ввод"); }
Если radius >= 0 является true (истиной), то вычисляется и показывается area; если false, то только показывается сообщение "Отрицательный ввод".
Как обычно, фигурные скобки можно пропустить, если внутри них только одна инструкция. Следовательно, круглые скобки, заключающие инструкцию System.out.println("Negative input") в предыдущем примере, могут быть пропущены.
Далее ещё один пример использования выражения if-else. Пример проверяет, является ли число чётным или нечётным следующим образом:
if (number % 2 == 0) System.out.println(number + " является чётным."); else System.out.println(number + " является нечётным.");
Проверь себя:
- Напишите инструкцию if, которая увеличивает pay на 3% если score больше чем 90, в противном случае pay увеличивается на 1%.
- Каким будет вывод в коде (a) и (b) если number равно 30? Каким если number равно 35?
(a)
if (number % 2 == 0) System.out.println(number + " является чётным."); System.out.println(number + " является нечётным.");
(b)
if (number % 2 == 0) System.out.println(number + " является чётным."); else System.out.println(number + " является нечётным.");