Автор: Widowmaker1984

Вопрос 16 (операторы if и switch)

"Какова роль и правила написания оператора выбора?"

1. В Java есть так называемые конструкции ветвления:
- условный оператор if;
- оператор switch;

2. Общая форма условного оператора if в Java такая:

if (Условие1) {
//действие(-я), которые выполняются, если Условие1 истинно;
}
else if (Условие2) {
//действие(-я), которые выполняются, если Условие2 истинно;
}
(...)
else if (УсловиеN) {
//действие(-я), которые выполняются, если УсловиеNn истинно;
}
else {
//действие(-я), которые выполняются, если все условия ложные;
}

скрытый текст2.1. Оператор всегда начинается со слова if, за которым всегда идут круглые скобки с условием. После круглых скобок никогда не ставится точка с запятой. Для того, чтобы указать альтернативный вариант ("если не выполняется, тогда...") используется слово else. Если условий несколько, каждое из них будет записываться через комбинацию else if, после которых в круглых скобках записывается альтернативное условие. Последний вариант ("если не то, не то и не то, тогда...") записывается через else без условия.

3. Конструкции с операторами if else, предлагающими большое количество условных ветвлений, могут выглядеть очень громоздкими. Поэтому в тех случаях, когда необходимо повторять проверку значения одной и той же переменной, есть более элегантное решение с помощью оператора switch. Его часто называют оператором выбора. Оператор switch эффективнее набора вложенных операторов if. Выбор осуществляется в зависимости от целочисленного выражения. Общая форма оператора выглядит так:

switch (ВыражениеДляСравнения {
case Совпадение1:
команда;
break;
case Совпадение2:
команда;
break;
case Совпадение3:
команда;
break;
default:
оператор;
break;
}

скрытый текст3.1. Параметр ВыражениеДляСравнения - выражение, в результате вычисления которого получается как правило целое число. Команда switch сравнивает результат ВыражениеДляСравнения с каждым последующим Совпадением. Если обнаруживается совпадение, то исполняется команда или набор команд, которые прописаны за данным оператором. Если совпадений не будет, то исполняется команда после ключевого слова default. Однако оператор default не является обязательным. В случае без него при отсутствии совпадений программа не выполняет никаких действий.

3.2. Каждая секция case обычно заканчивается командой break, которая передаёт управление к концу команды switch. Если ее не использовать, выполнение кода продолжится. Хотя иногда это и используется. Если код в блоках case совпадает, их можно объединить.

case 4:
case 6:
case 9:
case 11:
numDays = 30;
break;

3.3. Оператор switch отличается от оператора if тем, что он может выполнять проверку только равенства, а оператор if может вычислять результат булева выражения любого типа. Две константы case в одном и том же операторе switch не могут иметь одинаковые значения. Тип каждого значения должен быть совместим с типом выражения. Можно использовать простые типы byte, short, char, int. Также можно использовать Enum и String (начиная с JDK7), и специальные классы, которые являются обёрткой для примитивных типов: Character, Byte, Short, Integer.

Комментарии


Лучшее   Правила сайта   Вход   Регистрация   Восстановление пароля

Материалы сайта предназначены для лиц старше 16 лет (16+)