Чтение онлайн

на главную - закладки

Жанры

Программирование на Java

Вязовик Н.А.

Шрифт:

Оператор if

Пожалуй, наиболее распространенной конструкцией в Java, как и в любом другом структурном языке программирования, является оператор условного перехода.

В общем случае конструкция выглядит так:

if (логическое выражение) выражение или блок 1

else выражение или блок 2

Логическое выражение может быть любой языковой конструкцией, которая возвращает булевский результат. Отметим отличие от языка C, в котором в качестве логического выражения могут использоваться различные типы данных,

где отличное от нуля выражение трактуется как истинное значение, а ноль - как ложное. В Java возможно использование только логических выражений.

Если логическое выражение принимает значение "истина", то выполняется выражение или блок 1, в противном случае - выражение или блок 2. Вторая часть оператора ( else ) не является обязательной и может быть опущена. Т.е. конструкция if(x == 5) System.out.println("Five") вполне допустима.

Операторы if-else могут каскадироваться.

String test = "smb";

if( test.equals("value1") {

...

} else if (test.equals("value2") {

...

} else if (test.equals("value3") {

...

} else {

...

}

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

Например:

...

int x = 5;

if( x < 4) {

System.out.println("Меньше 4");

}

else if (x > 4) {

System.out.println("Больше 4");

} else if (x == 5) {

System.out.println("Равно 5");

} else {

System.out.println("Другое значение");

}

Предложение "Равно 5" в данном случае напечатано не будет.

Оператор switch

Оператор switch удобно использовать в случае необходимости множественного выбора. Выбор осуществляется на основе целочисленного значения.

Структура оператора:

switch(int value) {

case const1:

выражение или блок

case const2:

выражение или блок

case constn:

выражение или блок

default:

выражение или блок

}

Причем, фраза default не является обязательной.

В качестве параметра switch может использоваться

переменная типа byte, short, int, char или выражение. Выражение должно в конечном итоге возвращать параметр одного из указанных ранее типов. В операторе switch не могут применяться значения примитивного типа long и ссылочных типов Long, String, Integer, Byte и т.д.

При выполнении оператора switch производится последовательное сравнение значения x с константами, указанными после case, и в случае совпадения выполняется выражение следующее за этим условием. Если выражение выполнено нормально и нет преждевременного его завершения, то производится выполнение для последующих case. Если же выражение, следующее за case, завершилось ненормально, то будет прекращено выполнение всего оператора switch.

Если не выполнен ни один оператор case, то выполнится оператор default, если он имеется в данном switch. Если оператора default нет и ни одно из условий case не выполнено, то ни одно из выражений switch также выполнено не будет.

Следует обратить внимание, что, в отличие от многозвенного if-else, если какое-либо условие case выполнено, то выполнение switch не прекратится, а будут выполняться следующие за ним выражения. Если этого необходимо избежать, то после кода следующего за оператором case используется оператор break, прерывающий дальнейшее выполнение оператора switch.

После оператора case должен следовать литерал, который может быть интерпретирован как 32-битовое целое значение. Здесь не могут применяться выражения и переменные, если они не являются final static.

Рассмотрим пример:

int x = 2;

switch(x) {

case 1:

case 2:

System.out.println("Равно 1 или 2");

break;

case 3:

case 4:

System.out.println("Равно 3 или 4");

break;

default:

System.out.println(

"Значение не определено");

}

В данном случае на консоль будет выведен результат "Равно 1 или 2". Если же убрать операторы break, то будут выведены все три строки.

Вот такая конструкция вызовет ошибку времени компиляции.

int x = 5;

switch(x) {

case y: // только константы!

...

break;

}

В операторе switch не может быть двух case с одинаковыми значениями.

Т.е. конструкция

switch(x) {

case 1:

System.out.println("One");

break;

case 1:

System.out.println("Two");

break;

case 3:

System.out.println("Tree or other value");

}

недопустима.

Также в конструкции switch может быть применен только один оператор default.

Управление циклами

Поделиться:
Популярные книги

Акелдама - кровавое поле битвы. Книга 3. Часть 1

Вихрева Елена
3. Акелдама - кровавое поле битвы
Фантастика:
фэнтези
8.00
рейтинг книги
Акелдама - кровавое поле битвы. Книга 3. Часть 1

Один против всех

Сухов Евгений Евгеньевич
Детективы:
боевики
7.67
рейтинг книги
Один против всех

Красные звезды. Полная трилогия

Березин Федор Дмитриевич
Красные звезды
Фантастика:
альтернативная история
5.70
рейтинг книги
Красные звезды. Полная трилогия

Действо

Болотников Сергей
Фантастика:
научная фантастика
5.00
рейтинг книги
Действо

На границе империй. Том 3

INDIGO
3. Фортуна дама переменчивая
Фантастика:
космическая фантастика
5.63
рейтинг книги
На границе империй. Том 3

Прапорщик. Назад в СССР. Книга 6

Гаусс Максим
6. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прапорщик. Назад в СССР. Книга 6

История одного гоблина. Два в одном

Болотов Андрей Тимофеевич
2. История одного гоблина
Фантастика:
фэнтези
юмористическое фэнтези
7.00
рейтинг книги
История одного гоблина. Два в одном

Вечный. Книга VII

Рокотов Алексей
7. Вечный
Фантастика:
боевая фантастика
рпг
попаданцы
5.00
рейтинг книги
Вечный. Книга VII

За что сражались советские люди. «Русский НЕ должен умереть»

Дюков Александр
Документальная литература:
прочая документальная литература
5.20
рейтинг книги
За что сражались советские люди. «Русский НЕ должен умереть»

Цикл "Отмороженный". Компиляция. Книги 1-14

Гарцевич Евгений Александрович
Отмороженный
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Цикл Отмороженный. Компиляция. Книги 1-14

Дневник (1887-1910)

Ренар Жюль
Проза:
проза прочее
4.00
рейтинг книги
Дневник (1887-1910)

Ссоры на пути к сексу или что же нужно этим мужчинам?!

Зберовский Андрей Викторович
Научно-образовательная:
психология
7.86
рейтинг книги
Ссоры на пути к сексу или что же нужно этим мужчинам?!

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Собрание сочинений, том 1. Белый вождь. Квартеронка.

Рид Томас Майн
1. Собрание сочинений в 6 томах
Приключения:
приключения про индейцев
вестерны
7.86
рейтинг книги
Собрание сочинений, том 1. Белый вождь. Квартеронка.