黑马程序员技术交流社区

标题: switch中不遇break不停 [打印本页]

作者: m狂崩的猫    时间: 2016-3-22 21:35
标题: switch中不遇break不停
int b = 0;
switch(a){
    case1:b++;
    case2:b++;
    default:b++;break;
}
时b=3        ?
作者: Joschi    时间: 2016-3-22 21:43
你这个题  没有给出a的值,如果a的值在case1 和case2中找不到
那会走到default  此时b的值为1  遇到break结束。

如果a=1  那么b最终的值会为3
如果a=2  那么b最终的值会为2
作者: Devilhunter    时间: 2016-3-22 21:58
你是想说无break穿透情况吧
作者: 兵蜂    时间: 2016-3-22 21:59
每一个case后面都是可以加break的
作者: 604840337    时间: 2016-3-22 22:15
首先要把a赋值 才可以  需要严谨性  没有break  那么则会穿透
作者: yunfeng482    时间: 2016-3-22 23:06
呵呵,老生常谈的问题{:2_32:}
作者: huangkai521    时间: 2016-3-22 23:17
1、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
2、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
3、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
4、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。
作者: 陈文广    时间: 2016-3-22 23:25
这里面涉及到了switch语句中的case穿透问题,
作者: 向北_    时间: 2016-3-22 23:28
a......?呢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2