Java 简明教程
Java - switch statement
Java switch Statement
Java switch statement 允许测试 variable 是否与值列表相等。每个值都称为案例,并且会检查切换的变量以查找每个案例。
当需要多个 if-else statements 时,可以 switch 语句。它可以有多个代码块以及案例值,并根据匹配的案例值执行多个代码块中的一个。
Syntax
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
}
Rules
以下规则适用于 switch 语句:
-
switch 语句中使用的变量只能是整数、可转换整数(字节、短整数、字符)、字符串和枚举。
-
你可以在 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。
Examples
Example 1
在此示例中,我们展示了 switch 语句的使用,其中 case 基于字符。我们创建了一个变量 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
Example 2
在此示例中,我们将展示基于 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
Example 3
在此示例中,我们将展示基于字符串的交换语句的使用方法。我们创建了一个变量 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