黑马程序员技术交流社区
标题:
switch语句特点,不编译,你可以一眼看出结果吗?
[打印本页]
作者:
2119391569
时间:
2015-5-2 10:22
标题:
switch语句特点,不编译,你可以一眼看出结果吗?
class Demo12//定义一个类
{
//主函数
public static void main(String[] args)
{
show(0);//15
show(1);//14
}
public static void show(int i)
{
switch(i)
{
default:
i+=2;
case 1:
i+=1;
case 4:
i+=8;
case 2:
i+=4;
}
System.out.println("i="+i);
}
}
原因:当运行show(0)的时候,case之间与default没有顺序,先执行第一个case,没有匹配的case就执行了default,执行default之后发现没有对应的break,程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束(一般语句结束要么是遇到分号,要么是遇到大括号。)
当运行show(1)时,有匹配的case,就不执行default.但是匹配的case却没有对应的break,那么程序会继续向下执行,运行可以执行的语句,这时就不在判断case了,直到遇到break或者switch结尾结束。
最后的结果:show(0)=15; show(1)=14;
这只是抛砖引玉,希望大家都可以多多的学习!
作者:
2119391569
时间:
2015-5-2 10:26
占楼备用,大家有什么经典的题型或好的思路都分享一下,知识越分享越快乐,虽然我很菜,但这又有什么关系?
作者:
一只玉米
时间:
2015-5-2 11:57
几天前才看视频内容的就忘了,唉,学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2