Java/Оператор условия if и оператор выбора switch
- Начало
- Hello World!
- Комментарии
- Переменные
- Стандартные структуры
- Операторы условий
- Полезные сокращения
- Операторы цикла
- Классы
- Исключения
- Коллекции
- Listeners
- GUI
- Паттерны
- Программы
- Компилирование
Иногда нам нужно использовать не прямые действия, а с условием. Условие вы можете задавать сами. Некоторые примеры:
Оператор if
[править]Этот оператор проверяет, равно ли выражение в скобках true. Если да, то действие выполняется. Если нет, то идёт следующая после блока команда. Пример:
class Test {
public static void main(String[] args){
if(true) {
System.out.println("Тест прошёл успешно.");
}
}
}
Вывод в консоли:
Тест прошёл успешно.
Как видите, этот оператор сработал успешно, так как в выражение в скобках равно true.
Оператор else
[править]Действия, написанные в операторе else
, будут выполнены, только если значение if
равно false. Пример:
class AnotherTest {
public static void main(String[] args){
if(false) {
System.out.println("Тест прошёл не очень успешно.");
} else {
System.out.println("Тест прошёл успешно.");
}
}
}
Вывод в консоли:
Тест прошёл успешно.
Оператор switch
[править]Данный способ сравнивает, то что дано в switch
( в примере снизу это число типа int
с переменной i
) и то что написано после ключевого слова case
. Таким образом switch
сравнивает i
с возможными значениями. Пример:
class SwitchTest {
public static void main(String[] args) {
int i = 2;
switch(i) {
case 1:
System.out.println("Тест работает.");
break;
case 2:
System.out.println("Тест добрый.");
break;
case 3:
System.out.println("Тест поможет вам.");
break;
}
}
}
Вот код без использования switch
, который делает то же самое:
class NoSwitchTest {
public static void main(String[] args) {
int i = 2;
if(i == 1) { // аналог "case 1"
System.out.println("Тест работает");
} else if(i == 2) { // аналог "case 2"
System.out.println("Тест добрый");
} else if(i == 3) { // аналог "case 3"
System.out.println("Тест поможет вам");
}
}
}
Вывод в консоли будет:
Тест добрый.
Ключевое слово break
[править]Теперь подробнее про ключевое слово break
. По умолчанию после того как нужный код из case
выполнен, оператор ( если нет этого слова ) перескакивает на следующий case
без проверки, таким образом, если бы мы не ставили слово break
вывод в консоли был бы:
Тест добрый
Тест поможет вам
Ключевое слово default
[править]Предположим case
'ов может быть много, а число не подходит ни к одному. Для таких ситуаций и нужен "default". Он выполняется в случае, если ни один из case
'ов не сработал. Обратите внимание, что break
в секции default
необязателен. Пример :
class DefaultTest {
public static void main(String[] args) {
int i = 152;
switch(i) {
case 1:
System.out.println("Тест работает");
break;
case 2:
System.out.println("Тест добрый");
break;
case 3:
System.out.println("Тест поможет вам");
break;
default:
System.out.println("Тест интересный");
}
}
}
Вывод на консоль :
Тест интересный
Он как и все case
тоже выполняется, если нет ключевого слова break
. Пример:
class DefaultAndBreakTest {
public static void main(String[] args) {
int i = 1;
switch(i) {
case 1:
System.out.println("Тест работает");
case 2:
System.out.println("Тест добрый");
case 3:
System.out.println("Тест поможет вам");
default:
System.out.println("Тест интересный");
}
}
}
Вывод в консоли :
Тест работает
Тест добрый
Тест поможет вам
Тест интересный
Заметьте, что если в конце блока case
стоит break
, это не значит, что он не будет выполняться.