switch条件语句
switch 条件语句也是一种很常用的选择结构语句,它由一个switch控制表达式和多个case关键字组成。与if条件语句不同的是,switch 条件语句的控制表达式结果类型只能是byte、short、char、int、enum枚举以及String类型,而不能是boolean类型。switch条件语句的基本语法格式如下:
switch (控制表达式){
case 目标值1:
执行语句1
break;
case 目标值2:
执行语句2
break;
...
case 目标值n:
执行语句n
break;
default:
执行语句n+1
break;
}
在上面的语法格式中,switch语句将控制表达式的值与每个case中的目标值进行匹配,如果找到了匹配的值,会执行对应case后的执行语句,并通过break关键字跳出该switch语句;如果搜索完所有case中的目标值仍没找到任何匹配的值,就会执行default后的语句。switch语句中的break关键字将在后面的小节中做具体介绍,此处,读者只需要知道break的作用是跳出switch语句即可。
接下来通过一个根据月份来判断当前所属季节的案例来演示switch条件语句的使用,如文件1所示。
文件1 Example10.java
1 public class Example10{
2 public static void main(String[] args) {
3 int month = 5; //假设当前为5月份
4 switch (month) {
5 case 12:
6 case 1:
7 case 2:
8 System.out.println("当前为时间为冬季");
9 break;
10 case 3:
11 case 4:
12 case 5:
13 System.out.println("当前时间为春季");
14 break;
15 case 6:
16 case 7:
17 case 8:
18 System.out.println("当前时间为夏季");
19 break;
20 case 9:
21 case 10:
22 case 11:
23 System.out.println("当前时间为冬季");
24 break;
25 default:
26 System.out.println("输入的月份不正确!!!");
27 break;
28 }
29 }
30 }
运行结果如图1所示。
图1 运行结果
从文件1可以看出,当有多个case目标值会执行同样的执行语句时,可以将这多个case标签并列书写,并只编写一次执行语句即可。
文件1中,由于变量 month的值为5(即当前月份为5月),整个switch语句判断的结果满足第12行代码的条件,因此输出“当前时间为春季”。文件中的default语句用于处理和前面的case目标值都不匹配的情况,如果将第3行代码替换为“int month= 13;”,那么再次运行程序后,输出的结果如图2所示。
图2 运行结果
注意:
在使用switch条件语句时,需要特别注意两点:第一,switch条件语句后{}中的多个case以及default标签顺序可以随机,并不影响程序的执行结果;第二,在case和default标签中的执行语句后务必都加上break关键字,用于执行完语句后跳出当前的switch条件语句,否则,程序会接着执行后续的执行语句,直到遇到break关键字或switch语句末尾为止。