[Java] Урок 3. Условные операторы
- if-else
- break
- switch
1. if-else
Никаких подводных камней. Всё по классике.
if (<логическое выражение>) <оператор 1>; [ else <оператор 2>;]
Раздел else
необязателен. На месте любого из операторов может стоять составной оператор, заключенный в фигурные скобки. Логическое выражение — это любое выражение, возвращающее значение типа boolean
.
2. break
При обычном использовании служит для прерывания циклов или для выхода из составного условия (switch
).
for(;;) { if(t) break; }
Так же может использоваться для выхода из именованных блоков.
a: { b: { c: { System.out.println("Перед break"); if (t) break b; System.out.println("Блок c"); } System.out.println("Блок b"); } System.out.println("Блок a"); }
В данном примере оператор break b;
сообщает среде исполнения, что необходимо выйти из блока b:
и начать выполнять следующий блок. Соответственно сообщения "Блок c"
и "Блок b"
распечатаны не будут, а будет распечатано сообщение "Блок a"
Это может быть похоже на оператор goto
, но тут есть одно существенное отличие - можно использовать оператор break
только для перехода за один из текущих вложенных блоков. Переход в произвольный блок недопустим.
3. switch
switch (<выражение>) { case <значение 1>: <оператор 1>; break; case <значение 2>: <оператор 2; break; case <значение 3>: <оператор 3; break; default: <оператор 4>; }
Результатом вычисления выражения может быть значение любого простого типа, при этом каждое из значений, указанных в операторах case
, должно быть совместимо по типу с результатом выражения. Все эти значения должны быть уникальными.
Если же значению выражения не соответствует ни один из case
, управление передается коду, расположенному после ключевого слова default
. Оператор default
необязателен.
Внутри switch оператор break приводит к передаче управления на код, стоящий после оператора switch
. Если break
отсутствует, после текущего раздела case
будет выполняться следующий.
switch (month) { case 12: case 1: case 2: season = "Winter"; break; case 3: case 4: case 5: season = "Spring"; break; }
Нет обратных ссылок на эту запись.
Leave a comment