Оператор if является основным оператором управления, который позволяет Java принимать решения или, точнее, выполнять операторы по условию. Оператор if содержит выражение и оператор. Если выражение равно true, то интерпретатор выполняет данный оператор. Однако если выражение равно false, то оператор пропускается. Выражение всегда должно возвращать тип boolean. Например:
if
( username == null) // Если имя пользователя равно null, тоusername = "John Doe"; // определить его
Согласно синтаксису оператора if, выражение необходимо заключать в круглые скобки, хотя они и кажутся избыточными.
Как уже упоминалось, группа операторов, заключенная в фигурные скобки, сама является оператором, поэтому можно записать такой оператор if:
if
(( address == null) || ( address.equals(""))) {address = "[undefined]";
System.out.println("WARNING: адрес не указан.");
}
Оператор if может содержать необязательное ключевое слово else, за которым следует второй операнд. При записи оператора в таком виде вычисляется выражение, а затем, если результат равен true, выполняется первый оператор. Иначе выполняется второй оператор. Например:
if
( username != null) System.out.println("Привет " + username);else {
username = askQuestion("Как тебя зовут?");
System.out.println("Привет " + username + ". Welcome!");
}
При использовании вложенных операторов if/else необходимо убедиться в том, что оператору else соответствует подходящий оператор if. Рассмотрим следующие строки:
if
( i == j)if ( j == k) System.out.println("i равно k");
else
System.out.println("i не равно j"); // ОШИБКА!!
В этом примере внутренний оператор if образует единый оператор, выполнение которого зависит от внешнего оператора if. К сожалению, не ясно (если связи не определяются отступами), к какому оператору if относится данный оператор else. В представленном примере отступы сбивают с толку. Согласно правилу, такой оператор else связан с ближайшим к нему оператором if. С правильно установленным отступом этот код выглядит следующим образом:
if ( i == j)
if ( j == k) System.out.println("i равно k");
else
System.out.println("i не равно j"); // ОШИБКА!!
Это допустимый код, но он явно отличается от кода, который хотел записать программист. При работе с операторами if лучше использовать фигурные скобки. Это облегчит чтение кода. Лучше писать код таким образом:
if
(i == j) {if (j == k)
System.out.println("i равно k");
} else {
System.out.println("i не равно j");
}
Оператор else if
Оператор if/else используют при проверке состояния и при выборе одного из двух операторов или блоков программы. Но что делать, если нужно выбирать из нескольких блоков? В таком случае обычно применяется оператор else if, который на самом деле является идиоматическим вариантом стандартного оператора if/else, а не новой синтаксической конструкцией. Он выглядит так:
if
( n == 1) {// Выполнить блок кода №1
}
else if ( n == 2) {
// Выполнить блок кода №2
}
else if ( n == 3) {
// Выполнить блок кода №3
}
else {
// Если ни одно условие не выполнилось, выполнить блок №4
}
Но вообще, в большинстве случаев, для такой конструкции лучше использовать оператор switch, который мы рассмотрим в следующем посте. А пока не большой пример:
И несколько вариантов вывода этой программы на консоль:
Так же, я думаю, тут еще разок стоит упомянуть об операторе ?: одним слайдом:
Мы его рассматривали тут.
Комментариев нет:
Отправить комментарий