A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

switch 语句有个问题
int x = 2,y=3;
switch(x){       
        case 5:
                y++;
           break;
        default:
                y++;
        case 3:
                y++;
        case 4:
                y++;
}
System.out.println("y="+y);
}
                             这里输出   y=6
int x = 2,y=3;
switch(x){       
        case 5:
                     y++;
        default:
                   y++;
        case 3:
                   y++;
                    break;       
        case 4:
                y++;
}
System.out.println("y="+y);
}
这里输出  y=5
这里case均不满足条件,那先执行default后面的语句,执行完后case也要执行,这里的话case执行顺序是怎么样的呢?
从default后面开始 ,还是从最上面的程序开始?
第一种的话,无论是default执行后,从上到下执行case程序
还是从default执行后,直接从default后执行case程序好像都不是y=6.
求解答的。


9 个回复

倒序浏览
从default后执行 default:
                y++;
        case 3:
                y++;
        case 4:
                y++;
执行这几行后跳出switch语句  结果为6
回复 使用道具 举报
哎呀!这个有点难度!
回复 使用道具 举报
从default后面执行,找到}或者break结束switch语句
回复 使用道具 举报
新程员 来自手机 中级黑马 2016-3-15 00:39:34
报纸
case的穿透效果啊
回复 使用道具 举报
学习了.
回复 使用道具 举报
结果等于6
回复 使用道具 举报
受教了{:2_32:}
回复 使用道具 举报
huhemingtiancai 发表于 2016-3-15 00:33
从default后面执行,找到}或者break结束switch语句

恩恩 谢谢你了   没学到遇到右大括号  也结束语句的~
回复 使用道具 举报
monZhang 发表于 2016-3-14 23:45
从default后执行 default:
                y++;
        case 3:

等于是从default后面开始执行,遇到 } 就结束了语句?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马