在 Java 编程中,switch
语句是一种用于根据不同条件执行不同代码块的结构。与if/else
语句相比,switch
语句更适用于对单个变量有多个可能取值时的情况。
语法
switch (expression) {
case value1:
// 当expression的值等于value1时执行的代码
break;
case value2:
// 当expression的值等于value2时执行的代码
break;
// 可以有多个case
default:
// 当expression的值不匹配任何case时执行的代码
break;
}
语法规范:
expression
:在switch
后面括号中的表达式。其值将与每个case
中的值进行比较。case
:紧跟在switch
后面的每个可能值,值必须是常量或常量表达式,不能是变量。break
:每个case
代码块末尾的关键字,用于退出switch
语句。如果缺少break
,程序将继续执行下一个case
中的代码。default
:可选部分,当expression
的值与任何case
都不匹配时,执行default
中的代码。
代码示例
switch 简单示例
public class SwitchExample {
public static void main(String[] args) {
int day = 4;
String dayString;
switch (day) {
case 1:
dayString = "星期一";
break;
case 2:
dayString = "星期二";
break;
case 3:
dayString = "星期三";
break;
case 4:
dayString = "星期四";
break;
case 5:
dayString = "星期五";
break;
case 6:
dayString = "星期六";
break;
case 7:
dayString = "星期日";
break;
default:
dayString = "无效日期";
break;
}
System.out.println("今天是:" + dayString);
}
}
代码运行结果:
今天是:星期四
case 缺少 break
如果在一个情况的代码块末尾没有写上break
,程序将会继续执行下一个情况的代码块。这意味着即使表达式的值匹配了一个情况,程序也会继续执行后续情况的代码。
int day = 1;
switch (day) {
case 1:
System.out.println("星期一");
case 2:
System.out.println("星期二");
// ...其他情况...
default:
System.out.println("这是默认情况");
}
代码运行结果:
星期三
多个 case 放到一起
如果有多个情况需要执行相同的代码块,可以将这些情况写在一起,共享同一个代码块。
public class MultiCaseSwitchExample {
public static void main(String[] args) {
int month = 3;
String monthString;
switch (month) {
case 1:
case 2:
case 3:
monthString = "一季度";
break;
case 4:
case 5:
case 6:
monthString = "二季度";
break;
case 7:
case 8:
case 9:
monthString = "三季度";
break;
case 10:
case 11:
case 12:
monthString = "四季度";
break;
default:
monthString = "无效月份";
break;
}
System.out.println("这个月份属于:" + monthString);
}
}
代码运行结果:
这个月份属于:一季度