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

Материал из Викиучебника — открытых книг для открытого мира


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

Оператор 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, это не значит, что он не будет выполняться.