switch 语句在多种编程语言中用于基于不同条件执行不同的代码块。
1.基本用法:基本的switch条件表达式:
switch (expression) {
case constant1:
// 当 expression 的值等于 constant1 时执行的代码
break;
case constant2:
// 当 expression 的值等于 constant2 时执行的代码
break;
// 可以有更多的 case
// ...
default:
// 当 expression 的值不匹配任何 case 时执行的代码
}
注意事项
1.表达式类型:expression 必须是字节(byte)、短整型(short)、整型(int)、字符(char)、枚举(enum)或字符串(从 Java 7 开始支持)类型。
2.case 语句:每个 case 后跟一个常量值,该值将与 expression 进行比较。
3.break 语句:在每个 case 语句块的末尾,通常会有一个 break 语句。它的作用是防止程序继续执行下一个 case 的代码块,即所谓的“贯穿”(fall-through)。如果没有 break,程序会继续执行下一个 case,直到遇到 break 或 switch 语句块结束。
4.default 语句:default 是可选的,它定义了当 expression 的值不匹配任何 case 时要执行的代码。
5.嵌套:switch 语句可以嵌套在另一个 switch 语句中,但通常这不是一个好的编程实践,因为它可能导致代码难以理解和维护。
6.枚举类型:在 Java 中,switch 语句可以很方便地与枚举类型一起使用,因为枚举类型提供了有限的、预定义的常量集。
7.性能:虽然 switch 语句在某些情况下可能比多个 if-else if 语句更高效,但在大多数情况下,性能差异并不显著。因此,选择使用 switch 还是 if-else if 应基于代码的可读性和可维护性。
int day = 3;
String dayString;
switch (day) {
case 1:
dayString = "Monday";
break;
case 2:
dayString = "Tuesday";
break;
case 3:
dayString = "Wednesday";
break;
case 4:
dayString = "Thursday";
break;
case 5:
dayString = "Friday";
break;
case 6:
dayString = "Saturday";
break;
case 7:
dayString = "Sunday";
break;
default:
dayString = "Invalid day";
}
System.out.println(dayString); // 输出 "Wednesday"