读书频道 > 网站 > 网页设计 > Java语言导学(原书第5版)
3.4.2 switch语句
15-08-05    下载编辑
收藏    我要投稿   

本文所属图书 > Java语言导学(原书第5版)

本书清晰地介绍了面向对象编程概念、程序设计语言基础、类和对象、接口和继承、泛型、包、数字和字符串、异常、集合等内容,同时涵盖了Java SE 7的新特性,比如NIO 2的内容等。每章后面的问题和练习可以帮助读立即去当当网订购

与if-then和if-then-else语句不同,switch语句可以包含多条可能的执行路径。switch语句通常和byte、short、char、int等基本数据类型一起使用,也会和枚举类型(见第4章)、String类和由某些基本数据类型组成的特殊类(character、byte、short和integer等,见第8章)一起使用。

下述SwitchDemo程序声明int类型的变量month,其值表示月份。它根据month的值使用switch语句显示月份的名称。



其输出结果为August。

switch语句的主体叫switch块。switch块中的语句可以用一个case标签或多个case标签或default标签来标记。switch语句计算其表达式,并执行匹配的case标签后的所有语句。

该程序的功能也可以用if-then-else语句实现:

 

选择if-then-else语句还是switch语句,取决于程序的可读性和语句的条件表达式。if-then-else语句可以根据值或条件的范围进行条件判断,而switch语句只能根据单个值(如枚举值、String对象等)进行条件判断。

需要注意的是break语句,它让程序跳出switch语句,继续执行switch块后的第一条语句。

break语句是必需的。如果没有break语句,switch 块中的语句就会失效:它会顺序执行匹配case标签之后的所有语句,不管是否是表达式的子case标签,直到遇到break语句。程序SwitchDemoFallThrough就是这样一个例子,它输出匹配月份及之后的月份。





程序输出如下:


 

就技术而言,最后的break不是必需的,因为控制流会跳出switch语句。但建议使用break,因为这样有助于更改代码,而且不容易犯错误。default部分处理所有不能用case部分显式处理的值。

下述SwitchDemo2程序说明语句如何包含多个case标签,其功能为计算特定月份的天数。


 

输出结果如下:


 

在switch语句中使用String对象

Java SE 7及更高版本支持在switch语句的表达式中使用String对象。下面的程序StringSwitchDemo会根据月份的String值来显示月份的数值:

 

 

程序输出8。

switch表达式中的String对象与case标签相关联的表达式相比较,就像使用String.equals方法一样。要让StringSwitchDemo程序接收任意大小写的月份,只需将输入的月份名称转换成小写(使用toLowerCase方法),并将case标签关联的所有字符串都改成小写即可。

注意 这个例子测试switch语句中的表达式是否为null。要确保任意switch语句中的表达式都不为null,以免抛出空指针异常(NullPointerException)。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站