11.5. Java - Оператор switch...case



Оператор switch в Java проверяет переменную на равенство в отношении списка значений. Каждое значение называется case, и переменная переключаясь проверяется для каждого case.

Синтаксис

Синтаксис для расширенного цикла (switch) в Java следующий:

switch(выражение){
    case значение :
       //Операторы
       break; //необязательно
    case значение :
       //Операторы
       break; //необязательно
    //Вы можете иметь любое количество операторов case.
    default : //необязательно
       //Операторы
}

Следующие правила применяются для оператора switch:

  • Переменные, которые используются в операторе switch, могут быть только целые числа, конвертированные в целые числа (byte, short, char), строки и перечисления.
  • Вы можете иметь любое количество операторов case в рамках одного switch. За каждым case следует сравниваемое значение, а затем идёт двоеточие.
  • Значение case должен быть того же типа данных как и переменная в switch, и она должна быть константой или литерал.
  • Когда переменная switch на равна оператору case, операторы следующие за case будут выполняться до тех пор, пока не будет достигнут оператор break.
  • При достижении оператора break, switch завершается, и поток управления переходит к следующей строке после оператора switch.
  • Не каждый case должен содержать break. Если отсутствует break, поток управления попадет на следующие case, до тех пор пока break не будет достигнут.
  • В Java оператор switch может иметь дополнительный default case, который должен находиться в конце switch. Default case может быть использован для выполнения задачи, когда ни один из case является правильным. Break не требуется в default case.

Диаграмма процесса

Структура оператора switch в java

Пример

public class Test {

   public static void main(String args[]){
      //char grade = args[0].charAt(0);
      char grade = 'C';

      switch(grade)
      {
         case 'A' :
            System.out.println("Отлично!"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("Отлично выполнено");
            break;
         case 'D' :
            System.out.println("Вы прошли");
         case 'F' :
            System.out.println("Лучше попробуйте снова");
            break;
         default :
            System.out.println("Неверная оценка");
      }
      System.out.println("Ваша оценка " + grade);
   }
}

Скомпилируйте и запустите java-программу, используя различные аргументы в командной строке. Будет получен следующий результат:

Отлично выполнено
Ваша оценка C

Что дальше?

В следующем разделе обсудим класс чисел (class Number) (в пакете java.lang) и его подклассы в языке Java.

Мы рассмотрим некоторые ситуации, где Вы могли бы использовать экземпляры этих классов, а не примитивные типы данных, а также классы, такие как форматирование, математические функции, которые Вам нужно будет знать при работе с числами.