Учебное пособие: Основные структуры языка Java

// Сюда передается управление

}

Обратите внимание, что метка ставится перед блоком или оператором, а управление передается за этот блок или оператор.

Оператор варианта

Оператор варианта switch организует разветвление по нескольким направлениям. Каждая ветвь отмечается константой или константным выражением какого-либо целого типа (кроме long) и выбирается, если значение определенного выражения совпадет с этой константой. Вся конструкция выглядит так.

switch (целВыр){

case констВыр1: оператор1

case констВыр2: оператор2

. . . . .

case констВырN: операторN

default: операторDef

}

Стоящее в скобках выражение целвыр может быть типа byte, short, int, char, но не long. Целые числа или целочисленные выражения, составленные из констант, констВыр тоже не должны иметь тип long.

Оператор варианта выполняется так. Все константные выражения вычисляются заранее, на этапе компиляции, и должны иметь отличные друг от друга значения. Сначала вычисляется целочисленное выражение целВыр. Если оно совпадает с одной из констант, то выполняется оператор, отмеченный этой константой. Затем выполняются все следующие операторы, включая и операторDef, и работа оператора варианта заканчивается.

Если же ни одна константа не равна значению выражения, то выполняется операторDefи все следующие за ним операторы. Поэтому ветвь default должна записываться последней. Ветвь default может отсутствовать, тогда в этой ситуации оператор варианта вообще ничего не делает.

Таким образом, константы в вариантах case играют роль только меток, точек входа в оператор варианта, а далее выполняются все оставшиеся операторы в порядке их записи.

В отличие от Pascal’я после выполнения одного варианта оператор switch продолжает выполнять все оставшиеся варианты.

Чаще всего необходимо "пройти" только одну ветвь операторов. В таком случае используется оператор break, сразу же прекращающий выполнение оператора switch. Может понадобиться выполнить один и тот же оператор в разных ветвях case. В этом случае ставим несколько меток case подряд. Вот простой пример.

switch(dayOfWeek){

case 1: case 2: case 3: case 4:case 5:

System.out.println("Week-day");, break;

case 6: case 7:

System.out.println("Week-end"); break;

default:

System.out.printlnt"Unknown day");

}

He забывайте завершать варианты оператором break.


Приложение 2. Работа с массивами

В классе Arrays из пакета java.utii собрано множество методов для работы с массивами. Их можно разделить на четыре группы.

К-во Просмотров: 538
Бесплатно скачать Учебное пособие: Основные структуры языка Java