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