Java - switch 语句


switch语句允许测试变量是否与值列表相等每个值称为一个情况,并且针对每种情况检查正在打开的变量。

句法

增强型 switch 语句的语法是 -

switch(expression) {
   case value :
      // Statements
      break; // optional
   
   case value :
      // Statements
      break; // optional
   
   // You can have any number of case statements.
   default : // Optional
      // Statements
}

以下规则适用于switch语句 -

  • switch 语句中使用的变量只能是整数、可转换整数(byte、short、char)、字符串和枚举。

  • 一个 switch 中可以有任意数量的 case 语句。每个案例后面都跟有要比较的值和冒号。

  • case 的值必须与 switch 中的变量具有相同的数据类型,并且必须是常量或文字。

  • 当打开的变量等于一个 case 时,该 case 后面的语句将执行,直到到达break语句。

  • 当到达break语句时,switch终止,并且控制流跳转到switch语句之后的下一行。

  • 并非每个案例都需要包含中断。如果没有出现中断,控制流将进入后续案例,直到达到中断为止。

  • switch语句可以有一个可选的 default case,它必须出现在 switch 的末尾。当所有情况都不成立时,可以使用默认情况来执行任务。默认情况下不需要中断。

流程图

Switch 语句

实施例1

在此示例中,我们展示了 switch 语句的使用,其中 case 基于字符。我们创建了一个可变等级。根据等级值,检查每个案例。如果满足某个情况并且存在break语句,则不会检查以下情况。

public class Test {

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

      switch(grade) {
         case 'A' :
            System.out.println("Excellent!"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("Well done");
            break;
         case 'D' :
            System.out.println("You passed");
         case 'F' :
            System.out.println("Better try again");
            break;
         default :
            System.out.println("Invalid grade");
      }
      System.out.println("Your grade is " + grade);
   }
}

使用各种命令行参数编译并运行上述程序。这将产生以下结果 -

输出

Well done
Your grade is C

实施例2

在此示例中,我们展示了 switch 语句的使用,其中 case 基于 int。我们创建了一个可变等级。根据等级值,检查每个案例。如果满足某个情况并且存在break语句,则不会检查以下情况。

public class Test {

   public static void main(String args[]) {
      int grade = 3;

      switch(grade) {
         case 1 :
            System.out.println("Excellent!"); 
            break;
         case 2 :
         case 3 :
            System.out.println("Well done");
            break;
         case 4 :
            System.out.println("You passed");
         case 5 :
            System.out.println("Better try again");
            break;
         default :
            System.out.println("Invalid grade");
      }
      System.out.println("Your grade is " + grade);
   }
}

使用各种命令行参数编译并运行上述程序。这将产生以下结果 -

输出

Well done
Your grade is 3

实施例3

在此示例中,我们展示了 switch 语句的使用,其中 case 基于字符串。我们创建了一个可变等级。根据等级值,检查每个案例。如果满足某个情况并且存在break语句,则不会检查以下情况。

public class Test {

   public static void main(String args[]) {
      String grade = "C";

      switch(grade) {
         case "A" :
            System.out.println("Excellent!"); 
            break;
         case "B" :
         case "C" :
            System.out.println("Well done");
            break;
         case "D" :
            System.out.println("You passed");
         case "F" :
            System.out.println("Better try again");
            break;
         default :
            System.out.println("Invalid grade");
      }
      System.out.println("Your grade is " + grade);
   }
}

使用各种命令行参数编译并运行上述程序。这将产生以下结果 -

输出

Well done
Your grade is C