Java switch使用原理及实例解析
这篇文章主要介绍了Java switch使用及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
java中有两个经常用于条件判断的方法,一个是if{}else{},另一个就是switch()了。总的来说因为switch可以直接一对一满足条件,不满足条件的情况是不会执行的的所以switch的效率会相对if{}else{}更高一些,而且这两个方法是可以无门槛互换的。
switch的使用:
- 能用于switch判断的类型有:byte、short、int、char(JDK1.6),还有枚举类型,但是在JDK1.7后添加了对String类型的判断
- case语句中少写了break,编译不会报错,但是会一直执行之后所有case条件下的语句而不再判断,直到default语句
- 若果没有符合条件的case就执行default下的代码块,default并不是必须的,也可以不写
switch(mark) {
case 0:
System.out.println(mark);
break;
case 10:
System.out.println(mark);
break;
case 20:
System.out.println(mark);
break;
}
这里mark值是判断条件,case 对应的是具体的值,如果mark=0或者mark=10或者mark=20,相对应的条件成立就会执行case中的程序
在这里有一个思维误区很容易出错,看下面代码:
switch(mark) {
case 0:
System.out.println(mark);
mark = 10;
break;
case 10:
System.out.println(mark);
mark = 20;
break;
case 20:
System.out.println(mark);
mark = 30;
break;
}
这段代码比和上面的代码相比,在每个case中会重新给mark赋值,让这个重新赋的值和下一步的case相对应。
错误思维:如果mark的初始值是0,这个switch程序会执行三次,执行的顺序依次是0,10,20。
因为我们在每一步的case中都重新给mark赋值了,所以不熟悉的很容易就会觉得这个switch会从上往下执行,凡是满足条件的步骤都会执行。其实这个switch是只会执行一次的,因为每个case后面都跟了一个break,这个break的作用就是跳出当前循环也就是跳出当前的switch,所以这个switch只会执行mark初始值对应的那个case,后面的步骤不会继续执行。如果要想三个步骤都依次执行需要在switch外面加上一个while循环,在一定的条件内重复执行switch:如下加上while
while(mark<=30) {
switch(mark) {
case 0:
System.out.println(mark);
mark = 10;
break;
case 10:
System.out.println(mark);
mark = 20;
break;
case 20:
System.out.println(mark);
mark = 30;
break;
}
}
总结:每次进入switch,如果每个case后面都用break跳出当前循环了,则不管mark的值怎么变,只会执行一个case
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- 详解java中if语句和switch的使用
- Java中switch的三种用法方式
- 浅谈java switch如果case后面没有break,会出现什么情况?
- java中的switch case语句使用详解
- Java枚举类型在switch语句正确使用方法详解
- Java Switch对各类型支持实现原理
- Java switch多值匹配操作详解
- Java switch关键字原理及用法详解
- JAVA字符串类型switch的底层原理详析
- Java switch 语句如何使用 String 参数
- Java实现转跳不同系统使用枚举加switch的方式示例
- java中switch选择语句代码详解
- Java中Switch用法代码示例
- Java基础之switch分支结构详解
相关文章
Springboot使用POI进行excel文件的导出与下载方式
这篇文章主要介绍了Springboot使用POI进行excel文件的导出与下载方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-08-08
单台Spring Cloud Eureka升级到三台Eureka高可用集群
今天小编就为大家分享一篇关于单台Spring Cloud Eureka升级到三台Eureka高可用集群,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2018-12-12
解决IDEA2020.2插件lombok报错问题(亲测有效)
这篇文章主要介绍了解决IDEA2020.2插件lombok报错问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-08-08
springboot读取application.yml报错问题及解决
这篇文章主要介绍了springboot读取application.yml报错问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06


最新评论