Java编程那些事儿34——switch语句语法
副标题#e#
5.3.2 switch语句
switch要害字的中文意思是开关、转换的意思,switch语句在条件语句中出格适合做一组变量相等的判定,在布局上比if语句要清晰许多。
switch语句的语法名目为:
switch(表达式){
case 值1:
成果代码1;
[break;]
case 值2:
成果代码2;
[break;]
……
default:
成果代码1;
[break;]
}
语法说明:
1、表达式的范例只能为byte、short、char和int这4种之一。
2、值1、值2…值n只能为常数或常量,不能为变量。
3、成果代码部门可以写任意多句。
4、break要害字的意思是间断,指竣事switch语句,break语句为可选。
5、case语句可以有任意多句,是标号语句。
6、default语句可以写在switch语句中的任意位置,成果雷同于if语句中的else。
执行流程:当表达式的值和对应case语句后的值沟通时,既从该位置开始向下执行,一直执行到switch语句的竣事,在执行中,假如碰着break语句,则竣事switch语句的执行。
则在if-else if-else语句中,按照月份得到每个月的天数,不思量闰年,的示例代码如下:
int month = 10;
int days = 0;
switch(month){
case 1:
days = 31;
break;
case 2:
days = 28;
break;
case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8:
days = 31;
break;
case 9:
days = 30;
break;
case 10:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
}
System.out.println(days);
#p#副标题#e#
按照switch语句的语法,该代码也可以简化为如下名目:
int month = 10;
int days = 0;
switch(month){
case 2:
days = 28;
break;
case 4:
case 6:
case 9:
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语句要稍微快一些,在实际的代码中,可以按照需要来利用对应的语句实现措施要求的逻辑成果。
文章来历:http://blog.csdn.net/Mailbomb/archive/2008/06/14/2547207.aspx