Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级Java

Java 其他

Java APIs和框架

Java 类引用

Java 有用资源

Java - switch语句



Java switch语句

Java 的switch语句允许测试一个变量是否与一系列值相等。每个值称为一个case,系统会检查正在切换的变量是否与每个case匹配。

当需要多个if-else语句时,可以使用switch语句。它可以包含多个代码块以及case值,并根据匹配的case值执行多个代码块中的一个。

语法

Java 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后跟要比较的值和一个冒号。

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

  • 当正在切换的变量等于某个case时,该case后面的语句将执行,直到遇到break语句。

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

  • 并非每个case都需要包含break。如果没有break,控制流将贯穿到后续的case,直到遇到break。

  • switch语句可以有一个可选的default case,它必须出现在switch的末尾。default case可以在没有任何case为真时执行任务。default case不需要break。

流程图

Switch Statement

示例

示例1

在这个例子中,我们展示了switch语句的用法,其中case基于char类型。我们创建了一个变量grade。根据grade的值,检查每个case。如果case满足条件并且存在break语句,则不会检查后续的case。

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类型。我们创建了一个变量grade。根据grade的值,检查每个case。如果case满足条件并且存在break语句,则不会检查后续的case。

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基于String类型。我们创建了一个变量grade。根据grade的值,检查每个case。如果case满足条件并且存在break语句,则不会检查后续的case。

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关键字用于在没有case值匹配时指定一个代码块。default关键字是可选的,但在switch case语句中应该使用它。

java_decision_making.htm
广告