background image

case 11:
days = 30; 
break; 
default:
days = 31; 
}
System.out.println(days); 
代码说明:因为 switch 语句每次比较的是相等关系,所以可以把功能相同的 case 语句
合并起来,而且可以把其他的条件合并到 default 语句中,这样可以简化 case 语句的书
写。该代码的结构比最初的代码简洁很多了。

 

虽 然在语法上 switch 只能比较相等的结构,其实某些区间的判别也可以通过一定的变
换使用 switch 语句进行实现。例如 if-else if-else 语句示例中的分数转换的示例,则分数
的区间位于 0-100 之间,如果一个一个的去比较,case 语句的数量会比较多,所以可

 

以做一个简单的 数字变换,只比较分数的十位及以上数字,这样数字的区间就缩小到了
0-10,则实现的代码如下:
int score = 87; 
switch(score / 10){
case 10:
case 9:
System.out.println(‘A’); 
break; 
case 8:
System.out.println(‘B’); 
break; 
case 7:
System.out.println(‘C’); 
break; 
case 6:
System.out.println(‘D’); 
break; 
default:
System.out.println(‘E’); 
}
当然,switch 语句不是很适合进行区间的判别,更多的区间判别一般还是使用 if-else 
if-else 语句进行实现。
5.3.3 小结
if 语句可以实现程序中所有的条件,switch 语句特别适合一系列点相等的判别,结构显
得比较清晰,而且执行速度比 if 语句要稍微快一些,在实际的代码中,可以根据需要来
使用对应的语句实现程序要求的逻辑功能。