浅谈Java中switch分支语句
2019-09-23 08:56:02来源:博客园 阅读 ()
浅谈Java中switch分支语句
在程序中遇到多分支选择的时候,想必大家都喜欢用if...else if...else...语句,尤其是初学者,因为在了解switch语句之前,我也是只会用if...else语句。那么现在看完这篇随笔的介绍后,你们又有了另外一种选择,使用switch语句可以增强代码的可能性,当然switch也不是随随便便就能用的,它也有语法规则的约束,请看下面的阐述。
一、switch简介和语法
switch语句用于多分支选择,由一个控制表达式和多个case标签组成。switch语句后面的控制表达式的数据类型只能是byte、short、char、int、String和枚举类型,不能是其它类型。
switch语句往往需要在case标签后紧跟一个代码块,case标签作为这个代码块的标识。
switch语句的语法如下:
switch(expr){ case condition1{ //代码块... break; } case condition2{ //代码块... break; } ... case conditionN{ //代码块... break; } dafault:{ //代码块... } }
这种分支语句的执行是先对expr求值,然后依次匹配每个case标签后的condition值,遇到匹配的值即执行对应的代码块,如果condition的值没有与expr表达式的值相等,则执行default标签后的代码块。
二、switch语句和if语句的区别
switch语句和if语句都可用于分支条件的选择,但switch后面的控制表达式只能是byte、short、char、int、String和枚举类型,不能是boolean类型,if后面的控制表达式是boolean类型;switch语句中各个case标签后代码块的开始点和结束点非常清晰,因此完全可以省略case后代码块的花括号。
三、switch的使用及注意事项
为了更清晰的认识switch,下面通过一段程序来示范switch的用法:
public class TestSwitch { public static void main(String[] args) { //声明变量languageType String languageType = "Java"; //执行switch语句 switch (languageType) { case "C": System.out.println("C语言"); break; case "Java": System.out.println("Java语言"); break; case "C++": System.out.println("C++语言"); break; case "Python": System.out.println("Python语言"); break; default: System.out.println("语言类型输入错误"); } } }
运行上面的程序输出:Java语言。
因为定义的变量(switch后面的控制表达式)"languageType" 与"Java"匹配。
如果把上面程序中的每个case标签里的break语句去掉,将会发生什么样的结果呢?那么我先把每个break语句注释掉,运行结果如下:
Java语言 C++语言 Python语言 语言类型输入错误
输出结果是不是很奇怪!这正是switch语句的运行流程决定的,只要进入switch语句的入口,程序会一直运行下去,直到遇到break语句,如果省略了break语句,那么匹配case值后的所有情况(包括default)都会被执行。
所以,使用switch语句时,有两个值得注意的地方:
1)switch后面的控制表达式只能是byte、short、char、int、String和枚举类型;
2)如果省略了case后的代码块break,将会引入一个陷阱。
关注微信公众号【Java典籍】,收看更多Java技术干货!关注即送java全套资料一份
▼微信扫一扫下图↓↓↓二维码关注
原文链接:https://www.cnblogs.com/bingyimeiling/p/11544720.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:重学Java(一):与《Java编程思想》的不解之缘
下一篇:线程最最基础的知识
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash