Условные операторы предназначены для эффективного программирования. С помощью данных операторов осуществляется разветвление программы, т. е. работа программы может происходить по нескольким направлениям. К условному оператору относят оператор IF. Рассмотрим его подробнее:
IF (условие) оператор1;
ELSE оператор2;
где условие типа boolean. Если условие истинно (true), выполняется оператор1, а если ложно (false)– выполняется оператор2. Иногда else можно опустить. Здесь нужно обратить внимание на то, что если в программе, точнее в условном операторе If предусмотрено выполнение более двух операторов, то такая конструкция заключается в фигурные скобки. Смотрим:
If (условие) {
оператор1;
оператор2;
оператор3
}
else {
оператор1;
оператор2;
оператор3;
}
Теперь рассмотрим структурную схему условного оператора конструкции if-else. Если представить входную дверь в дом с кодовым замком, который открывается только при выполнении условия, и некий объект, имеющий ключ x. Если ключ положительный, то он войдет в здание (так как выполнится условие x>o) и выполнит находящийся там код. Если ключ отрицательный, то пройдет мимо дома, выполнив else с его блоком операторов и продолжит далее программный код.
Теперь рассмотрим условный оператор без else. При положительным ключе, объект также зайдет в дом и выполнит код. Если же условие окажется false, объект, не заходя в дом, продолжит выполнять код, следующий после условного оператора (за домом).
Теперь рассмотрим работу условного оператора «без домиков».
Здесь мы видим, что выполняется блок оператора ELSE {c=5; y=2; System.out.println(c+y)}. Далее рассмотрим работу условного оператора без ELSE.
Из рисунка видно, что оператор IF не выполняется, однако программа продолжает свою работу. Конструкция IF ELSE может быть вложенной таким образом:
IF (условие)
оператор1;
ELSE IF(условие)
оператор2;
ELSE IF (условие)
оператор3;
……
……
ELSE
операторN;
Работает данная схема следующим образом. Как только одно из условий оператора IF окажется true, будет выполняться оператор, связанный с ним. Если все условия оператора IF окажутся false, то выполниться последний оператор ELSE. Если он отсутствует в программе, то конструкция IF ELSE вообще выполняться не будет.
Оператор SWITCH в java применяется для выбора из множества вариантов. Его общая форма записи такова:
SWITCH (выражение){
case значение1:
операторы;
break;
…..
…..
case значение2:
операторы;
break;
default:
операторы;
}
Если выражение будет равняться одному из значений case, то будут выполняться операторы этой ветви. Если ни одно из значений не совпадет с выражением, то выполнится ветвь default.
Здесь нужно обратить на оператор BREAK. Дело в том, что оператор BREAKпрерывает выполнение в данном случае SWITH, т.е. после выполнения операторов в одной из ветвей case, происходит выход из SWITH. В принципе оператор BREAK можно не использовать, но тогда будьте готовы к тому, что код будет выполнятся в последующих ветвях. Рассмотрим это:
Иногда отсутствие оператора BREAK позволяет писать эффективный код. Рассмотрим нижеприведенную схему программы, где по номеру месяца определяется пора года. В схеме также показана последовательность выполнения кода. Особое внимание обратите на то, что в некоторых ветвях case отсутствуют операторы, в том числе и BREAK.
Изучив работу условного оператора IF и оператора выбора SWITCH можно сделать ряд выводов:
· Отличие операторов друг от друга заключается в том, что в SWITCH проверяется выражение только на равенство, а в IF вычисляется результат логического выражения любого типа.
· Если нужно сделать выбор из огромного количества значений, оператор SWITCH будет работать быстрее, чем IF. Это объясняется тем, что значения case одного типа и их нужно проверить только на равенство.
В заключение подведем итоги. В данной статье мы подробно познакомились с работой условного оператора IF-ELSE и оператором выбора SWITCH, рассмотрели варианты их применения.
Ставьте лайки и подписывайтесь на мой блог и Вас ждет масса увлекательных статей по java.