Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
последовательность операторов
break;
case константа2:
последовательность операторов
break;
case константаЗ:
последовательность операторов
break;
default:
последовательность операторов
}
В версиях Java, предшествующих JDK 7, выражение, управляющее оператором switch, должно быть типа byte, short, int, char или перечислением. (Подробнее о перечислениях речь пойдет в главе 12.)
Начиная с версии JDK 7, выражение может относиться к типу String. Это означает, что в современных версиях Java для управления оператором switch можно пользоваться символьной строкой. (Этот прием программирования демонстрируется в главе 5 при рассмотрении класса String.) Но зачастую в качестве выражения, управляющего оператором switch, вместо сложного выражения употребляется простая переменная.
Последовательность операторов из ветви default выполняется в том случае, если ни одна из констант выбора не совпадает с заданным выражением. Ветвь default не является обязательной. Если же она отсутствует и выражение не совпадает ни с одним из условий выбора, то никаких действий вообще не выполняется. Если же происходит совпадение с одним из условий выбора, то выполняются операторы, связанные с этим условием, вплоть до оператора break.
Ниже приведен пример программы, демонстрирующий применение оператора switch.
// Демонстрация оператора switch,
class SwitchDemo {
public static void main(String args[]) {
int i;
for(i=0; i<10; i++)
switch (i) {
case 0:
System.out.println ("i is zero");
break;
case 1:
System.out.println("i is one");
break;
case 2:
System.out.println("i is two");
break;
case 3:
System.out.println("i is three");
break;
case 4 :
System.out.println("i is four");
break;
default:
System.out.println("i is five or more");
}
}
}
Результат выполнения данной программы выглядит следующим образом:
i is zero
i is one
i is two
i is three
i is four
i is five or more
i is five or more
i is five or more
i is five or more
i is five or more
Как видите, на каждом шаге цикла выполняются операторы, связанные с совпадающей константой выбора в одной из ветвей case, в обход всех остальных ветвей. Когда же значение переменной i становится равным или больше пяти, оно не совпадает ни с одной из констант выбора, и поэтому управление получает выражение, следующее за оператором default.
Формально оператор break может отсутствовать, но, как правило, в реальных приложениях он применяется. При выполнении оператора break оператор switch завершает работу и управление передается следующему за ним оператору. Если же в последовательности операторов, связанных с совпадающей константой выбора в одной из ветвей case, не содержится оператор break, то сначала выполняются все операторы в этой ветви, а затем операторы, совпадающие с константой выбора в следующей ветви case. Этот процесс продолжается до тех пор, пока не встретится оператор break или же будет достигнут конец оператора switch.
В качестве упражнения проанализируйте исходный код приведенной ниже програм¬
мы. Сможете ли вы предсказать, как будет выглядеть результат ее выполнения?
// Демонстрация оператора switch без оператора break,
class NoBreak { >
public static void main(String args[]) {
int i;
for(i=0; i<=5; i++) {
switch(i) {
case 0:
// Далее следует "провал" в ветвях case оператора switch.
System.out.println("i is less than one");
case 1:
System.out.println("i is less than two");
case 2:
System, out .println ("i is less than three")-;
case 3:
System.out.println("i is less than four");
case 4: