6个回答
展开全部
一般来说必须在case语句结尾添加break语句。一旦switch语句条件匹配时,case后面的程序就会被执行,直到遇到关键字break,否则会执行满足这个case之后的其他case的语句。如果在switch中省略了break语句,那么匹配的case的所有情况(包括default情况)都会被执行。
你这里先执行了switch(x),匹配到case 1,然后执行switch(y),匹配到case 0:a++,a变成1,遇到break,终止了switch(y),注意这里break只针对switch(y),并不是终止switch(x)。
由于switch(x)里的case 1并没有break,所以它还会继续执行case 2,即a++,b++,这时候a=2,b=1。由于case 2里面有break,所以执行到case 2就终止了。
你这里先执行了switch(x),匹配到case 1,然后执行switch(y),匹配到case 0:a++,a变成1,遇到break,终止了switch(y),注意这里break只针对switch(y),并不是终止switch(x)。
由于switch(x)里的case 1并没有break,所以它还会继续执行case 2,即a++,b++,这时候a=2,b=1。由于case 2里面有break,所以执行到case 2就终止了。
展开全部
你没发现最外面那个case 1后面除了跟了一个switch之外,并没有写break么,这会导致执行完外面的case 1之后,会接着执行case 2,最终就是
a++;
a++;b++;
结果当然就是2 1
a++;
a++;b++;
结果当然就是2 1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2020-08-11
展开全部
这题有点坑
switch case的处理是这样的,如果不加入break,那么他会顺着那个找到的case顺序执行下去,一直到遇到break,或者return
所以后面的case 2的内容也会执行一次
switch case的处理是这样的,如果不加入break,那么他会顺着那个找到的case顺序执行下去,一直到遇到break,或者return
所以后面的case 2的内容也会执行一次
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这道题目确实容易忽悠人,因为把歪判断完以后,a=1,b=0,这时switch(y)已经结束了。但是是switch(x)在判断x=1以后并没有break;这时就得判断x=2,这时候又把a+1,b+1,然后break;switch(x)才结束。所以最后结果是a=2,b=1。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在执行完第一个case 1后面没有break所以没有跳出循环,就执行下去case 2,然后case 2后面有break就跳出循环所以是a=2,b=1;你可以把case 2 和case 屏蔽掉看结果 和case 1后面加break,就明白了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这应该是写了个最简单的程序,判断xy的值,然后对应的ab各自自加一,switch跟case就像开关一样,当switch中的变量满足case的值,就执行相印的程序,没有break就会一直往下执行,然后case1执行完是一和零,然后执行了一步case2就成了二和一,然后才有了break跳出去的,所以最后就是a=2,b=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询