Java switch 语句

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

当多个 ifelse 语句 是必需的。它可以有多个代码块以及 case 值,并根据匹配的 case 值执行多个代码块之一。

语法

Java switch 语句的语法是

switch(expression) {
   case value :
      // 语句
      break; //可选
   
   case value :
      // 语句
      break; //可选
   
   // 您可以有任意数量的 case 语句。
   default : //可选
      // 语句
} 

规则

以下规则适用于switch语句

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

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

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

  • 当打开的变量等于 case 时,该 case 后面的语句将执行,直到出现 break 语句

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

  • 并非每个case都需要包含中断。如果没有出现中断,控制流将通过到后续case,直到到达中断。

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

流程图

Java switch 语句

示例

示例 1

在此示例中,我们展示了 switch 语句的使用,其中 case 基于字符。我们创建了一个可变等级。根据等级值,检查每个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。我们创建了一个可变等级。根据等级值,检查每个case。如果满足条件并且存在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 基于字符串。我们创建了一个可变等级。根据等级值,检查每个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 

default关键字

default关键字用于在以下情况下指定代码块:没有匹配的大小写值。 default 关键字是可选的,但应该在 switch case 语句中使用。