黑马程序员技术交流社区
标题:
switch语句的问题
[打印本页]
作者:
没落NOKIA
时间:
2015-1-6 22:10
标题:
switch语句的问题
switch语句的内部运行机制是怎么样的?为什么没有break关键字会产生意想不到的执行效果
作者:
牛牛宝
时间:
2015-1-6 22:49
首先说一下switch的格式:
switch(表达式){
case 1:
执行语句;
break;
case 2:
执行语句;
break;
....
default:
执行语句;
break;
}
calse的值与表达式的值相匹配,哪个case的值匹配上就执行哪个case里的执行语句,遇到break就结束,如果都匹配不上就执行default里的语句
作者:
寻觅
时间:
2015-1-6 23:35
break;语句其实就是一个跳转,源文件在编译后成为中间字节码class文件,class在程序启东市会被加载到内存中的一块区域,你可以说它是方法区,在内存中还有一小块内存区域叫程序计数器,这个程序计数器就是在JVM读.class文件时记录代码的位置的,你可以认为它存的就是行号。这里我们回来看break;当程序执行到这里时会检测,看break后面是否有标记(其实就是行号),有标记就将程序要执行的点移到标记位置,没有的话就移到本层循环的外面(也是依据行号)。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2