博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中的switch case
阅读量:6038 次
发布时间:2019-06-20

本文共 1733 字,大约阅读时间需要 5 分钟。

switch-case语句格式如下

switch(变量){case 变量值1:    //;    break;case 变量值2:    //...;    break;  ...case default:    //...;    break;}

switch()变量类型只能是int、short、char、byte和enum类型。当进行case判断时,JVM会自动从上到小扫描,寻找匹配的case,可能存在以下情况:

情况一:若未找到,则执行默认的case。

int i = 5;        switch(i){        case 0:            System.out.println("0");break;        case 1:            System.out.println("1");break;        case 2:            System.out.println("2");break;        default:            System.out.println("default");break;        }输出:default

情况二:当每一个case都不存在break时,JVM并不会顺序输出每一个case对应的返回值,而是继续匹配,匹配不成功则返回默认case。

int i = 5;        switch(i){        case 0:            System.out.println("0");        case 1:            System.out.println("1"); case 2:            System.out.println("2");        default:            System.out.println("default");        } 输出:default

情况三:当每一个case都不存在break时,匹配成功后,从当前case开始,依次返回后续所有case的返回值。

int i = 2;        switch(i){        case 0:            System.out.println("0");        case 1:            System.out.println("1");        case 2:            System.out.println("2");        default:            System.out.println("default");        } 输出:2     default

情况四:若当前匹配成功的case不存在break,则从当前case开始,依次返回后续case的返回值,直到遇到break,跳出判断。

int i = 2;        switch(i){        case 0:            System.out.println("0");        case 1:            System.out.println("1");        case 2:            System.out.println("2");        case 3:            System.out.println("3");break;        default:            System.out.println("default");        }输出:2     3

因此switch case执行时,一定会先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断。

还需注意的是case后面只能是常量,可以是运算表达式,但一定要符合正确的类型。不能是变量,即便变量在之前进行了赋值,JVM依然会报错。

转载于:https://www.cnblogs.com/huiAlex/p/6240844.html

你可能感兴趣的文章
/etc/profile文件内容
查看>>
一页纸IT项目管理:大道至简的实用管理沟通工具
查看>>
汽车知识:车内异味的清除方法
查看>>
IE6 7下绝对定位引发浮动元素神秘消失
查看>>
浏览器的回流和重绘及其优化方式
查看>>
2.4 salt grains与pillar jinja的模板
查看>>
VDI序曲二十 桌面虚拟化和RemoteApp集成到SharePoint 2010里
查看>>
移动互联网,入口生死战
查看>>
JAVA多线程深度解析
查看>>
Kafka High Level Consumer 会丢失消息
查看>>
时间轴
查看>>
java 获取系统当前时间的方法
查看>>
Ubuntu 10.04升级git 到1.7.2或更高的可行方法
查看>>
Spring Security4实战与原理分析视频课程( 扩展+自定义)
查看>>
第一周博客作业
查看>>
thinkpython2
查看>>
oracle recyclebin与flashback drop
查看>>
svmlight使用说明
查看>>
Swing 和AWT之间的关系
查看>>
Mysql设置自增长主键的初始值
查看>>