if — это оператор условного перехода. Он направляет выполнение программы по двум разным маршрутам.
Общая форма оператора if:
Скачать исходники для статьи можно ниже
if (condition){ statemen1; } else { statement2; }
где statementN — одиночный или составной (включенный в фигурные скобки, т. е. в блок) оператор маршрута N (N — номер маршрута, для if он равен 1 или 2);
condition — любое выражение, которое возвращает значение типа boolean. Предложение else — необязательное.
Оператор if работает так: если condition имеет значение true, то выполняется statemen1, иначе — выполняется statement2 (если он присутствует).
Оба оператора вместе не будут выполняться ни в коем случае. Например, рассмотрим следующий фрагмент:
int а, b; if (а < b) { а = 0; } else { b = 0; }
Здесь, если a меньше, чем b, то a устанавливается в нуль, иначе — b устанавливается в нуль. Обе переменные сразу в нуль никогда не устанавливаются.
Цепочка операторов if-else-if
Часто используется цепочка операторов if-else-if – конструкция, состоящая из вложенных операторов if:
if (condition1) statement1; else if (condition2) statement2; else if (condition3) statement3; else statement4;
Условные выражения оцениваются сверху вниз. Как только найдено условие, принимающее значение true, выполняется ассоциированный с этим условием оператор, а остальная часть цепочки пропускается. Если ни одно из условий не принимает значение true, то выполняется последний оператор else, который можно рассматривать как оператор по умолчанию. Если же последний оператор else отсутствует, а все условные выражения принимают значение false, то программа не выполняет никаких действий.
Управляющий оператор, ?:
Тернарный оператор – ?: или в простонародье “Прическа Элвиса”.
В языке Java есть также специальный тернарный условный оператор, которым можно заменить определённые типы операторов if-else – это оператор ?:
Тернарный оператор использует три операнда. Выражение записывается в следующей форме:
логическое условие ? выражение 1 : выражение 2
Если логическое условие равно true, то вычисляется выражение 1 и его результат становится результатом выполнения всего оператора. Если же логическое условие равно false, то вычисляется выражение 2, и его значение становится результатом работы оператора. Оба операнда выражение 1 и выражение 2 должны возвращать значение одинакового (или совместимого) типа.
Рассмотрим пример, в котором переменной absval присваивается абсолютное значение переменной val.
// Демонстрация тернарного оператора public class Main { public static void main(String[] args) { int val = -5; int absval; absval = val < 0 ? -val : val; System.out.println(absval); } } 1 Вывод программы: 5 Переменной absval будет присвоено значение переменной val, если значение больше или равно нулю (вторая часть выражения). Если значение переменной val отрицательное, то переменной absval присваивается значение переменной, взятое со знаком минус, в результате минус на минус даст плюс, то есть положительно значение. Следует отметить, что данная программа полностью идентична программе, приведенной ниже с использованием if-else 1 public class Main { public static void main(String[] args) { int val = -5; int absval; if(val < 0) absval = -val; else absval = val; System.out.println(absval); } }