"Предыдущий Следующий

заявление о переключении

Вы используете оператор switch вместо длинного оператора if…else…if. В отличие от операторов if…else…if, проверка часто оценивается как постоянный целочисленный тип, перечисление или строка. . Внизу также есть по умолчанию уловить все. Вот общая установка.

Оператор switch передает управление соответствующей ветке или оператору case, что делает их очень эффективными. Для сравнения, операторы if…else…if проверяют каждый отдельный уровень и сравнение вплоть до того, который необходимо использовать. Однако операторы switch сразу знают, куда идти, потому что

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

switch (/* expression */){
    case constantExpression: 
        //statements
        break;
    case constantExpression: 
        //statements
        break;
    ...
    default: 
        //statements
        break;
}

Точно так же, как if…else…if после того, как случай найден, он переходит к правильному. Однако он не завершится, если вы не поставите break после своих утверждений. break — это зарезервированное слово, которое просто означает, что компьютер должен остановить текущее действие и пропустить его. В данном случае это завершение оператора switch и продолжение. Вот реальный пример.

String day = "Thurs";

switch ( day ){
    case "Mon":
        System.out.println("It is Monday");
        break;
    case "Tues":
        System.out.println("It is Tuesday");
        break;
    case "Wed":
        System.out.println("It is Wednesday");
        break;
    case "Thurs":
        System.out.println("It is Thursday");
        break;
    case "Fri":
        System.out.println("It is Friday");
        break;
    case "Sat":
        System.out.println("It is Saturday");
        break;
    case "Sun":
        System.out.println("It is Sunday");
        break;
}

/* Output:
    It is Thursday 
*/

Если мы посмотрим на этот пример, мы увидим, что вывод правильный. Теперь, как работают операторы switch, компьютер быстро переходит к нужному и начинает оттуда. В этом случае он опускается до четвертого случая и начинается оттуда. Если бы вообще не было инструкций break, то было бы напечатано что-то вроде этого.

It is Thursday
It is Friday
It is Saturday
It is Sunday

Как мы видим, компьютер не останавливается и продолжает работу до конца оператора switch. Однако вам не нужен оператор break, если вы хотите, чтобы компьютер прошел и выполнил остальные операторы печати. Например, мы можем сделать так, чтобы суббота и воскресенье распечатывали одно и то же, следуя этому принципу.

String day = "Sat";

switch ( day ){
    case "Mon":
        System.out.println("It is Monday");
        break;
    case "Tues":
        System.out.println("It is Tuesday");
        break;
    case "Wed":
        System.out.println("It is Wednesday");
        break;
    case "Thurs":
        System.out.println("It is Thursday");
        break;
    case "Fri":
        System.out.println("It is Friday");
        break;
    case "Sat":
    case "Sun":
        System.out.println("It is the weekend");
        break;
}

/* Output:
    It is the weekend
*/

Заявления о разрыве и рекомендуемая практика

Как мы узнали выше, break — это зарезервированное слово, которое просто означает, что компьютер должен остановить текущее действие и пропустить его. Этот оператор используется в разных местах, таких как операторы if, операторы switch и циклы.

Если мы посмотрим на приведенный выше пример, вы увидите, что у меня есть оператор break в последнем case, хотя он был последним. Это потому, что рекомендуется помещать оператор break в последний регистр, чтобы избежать возможных проблем. Это также известно как защитное программирование и используется для подготовки к любым непредвиденным обстоятельствам, которые могут нарушить ваш код. Например, если мир решит сделать неделю длинной в восемь дней, а мы вернемся, чтобы добавить восьмой день, код сломается, если в конце последнего case не было инструкции break.

String day = "Sun";

switch ( day ){
    case "Mon":
        System.out.println("It is Monday");
        break;
    case "Tues":
        System.out.println("It is Tuesday");
        break;
    case "Wed":
        System.out.println("It is Wednesday");
        break;
    case "Thurs":
        System.out.println("It is Thursday");
        break;
    case "Fri":
        System.out.println("It is Friday");
        break;
    case "Sat":
        System.out.println("It is Saturday");
        break;
    case "Sun":
        System.out.println("It is Sunday");
        //break; <-- no break statement here, but there should be!!
      case "newDay":
        System.out.println("It is a brand new day");
        //break; <-- no break statement here, but there should be!!
    //also if there was a default here that woul exicute beacuse there is no break statememt
}

/* Output:
    It is Sunday
    It is a brand new day
*/

Есть вопросы? Спросите ниже!

"Предыдущий Следующий