Java/Оператор условия if и оператор выбора switch

Материал из Викиучебника — открытых книг для открытого мира
Перейти к: навигация, поиск
Книга Java


редактировать содержание


Иногда нам нужно использовать не прямые действия, а с условием. Условие вы можете задавать сами. Некоторые примеры:

Оператор 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 с возможными значениями. Пример:

 1 class SwitchTest {
 2     public static void main(String[] args) {
 3         int i=2;
 4         switch(i) {
 5             case 1:
 6                 System.out.println("Тест работает.");
 7                 break;
 8             case 2:
 9                 System.out.println("Тест добрый.");
10                 break;
11             case 3:
12                 System.out.println("Тест поможет вам.");
13                 break;
14         }
15     }
16 }

Вот код без использования switch , который делает то же самое:

 1 class NoSwitchTest {
 2     public static void main(String[] args) {
 3         int i = 2;
 4         if(i == 1) { // аналог "case 1"
 5             System.out.println("Тест работает");
 6         } else if(i == 2) {
 7             System.out.println("Тест добрый");
 8         } else if(i == 3) {
 9             System.out.println("Тест поможет вам");
10         }
11     }
12 }

Вывод в консоли будет:

Тест добрый.

Ключевое слово break[править]

Теперь подробнее про ключевое слово break . По умолчанию после того как нужный код из case выполнен, оператор ( если нет этого слова ) перескакивает на следующий case без проверки, таким образом, если бы мы не ставили слово break

вывод в консоли был бы:

Тест добрый

Тест поможет вам

Ключевое слово default[править]

Предположим case'ов может быть много, а число не подходит ни к одному. Для таких ситуаций и нужен "default". Он выполняется в случае, если ни один из case'ов не сработал. Пример :

 1 class DefaultTest {
 2     public static void main(String[] args) {
 3         int i = 152;
 4         switch(i) {
 5             case 1:
 6                 System.out.println("Тест работает");
 7                 break;
 8             case 2:
 9                 System.out.println("Тест добрый");
10                 break;
11             case 3:
12                 System.out.println("Тест поможет вам");
13                 break;
14             default:
15                 System.out.println("Тест интересный");
16                 break;
17         }
18     }
19 }

Вывод на консоль :

Тест интересный

Он как и все case тоже выполняется, если нету ключевого слова break . Пример:

 1 class DefaultAndBreakTest {
 2     public static void main(String[] args) {
 3         int i = 1;
 4         switch(i) {
 5             case 1:
 6                 System.out.println("Тест работает");
 7             case 2:
 8                 System.out.println("Тест добрый");
 9             case 3:
10                 System.out.println("Тест поможет вам");
11             default:
12                 System.out.println("Тест интересный");
13                 break;
14         }
15     }
16 }

Вывод в консоли :

Тест работает

Тест добрый

Тест поможет вам

Тест интересный

Заметьте, что если в конце блока default ( или case) стоит break, это не значит, что он не будет выполняться.