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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© m狂崩的猫 中级黑马   /  2016-3-22 21:35  /  642 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int b = 0;
switch(a){
    case1:b++;
    case2:b++;
    default:b++;break;
}
时b=3        ?

8 个回复

倒序浏览
你这个题  没有给出a的值,如果a的值在case1 和case2中找不到
那会走到default  此时b的值为1  遇到break结束。

如果a=1  那么b最终的值会为3
如果a=2  那么b最终的值会为2
回复 使用道具 举报 1 0
你是想说无break穿透情况吧
回复 使用道具 举报
每一个case后面都是可以加break的
回复 使用道具 举报
首先要把a赋值 才可以  需要严谨性  没有break  那么则会穿透
回复 使用道具 举报
呵呵,老生常谈的问题{:2_32:}
回复 使用道具 举报
1、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
2、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
3、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
4、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。
回复 使用道具 举报
这里面涉及到了switch语句中的case穿透问题,
回复 使用道具 举报
a......?呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马