因为case3中的switch(3)后面的case块都不满足条件。
因为switch 中case之后没有用 break;跳出
case 1执行之后会继续执行下一个case ,直到用 break;跳出
n =1, m=2
执行case 1 中m++后继续执行下一个case 2:n++
再继续执行下一个case 3:中子switch(n)
这时n是2 m是3 执行子switch(n)中的case 2: m++;n++; 之后break;跳出子switch(n)
这时n是3 m是4
再继续执行下一个case 4:m++
最后n是3 m是5
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
debug 运行一下,观察每个 变量运行的值
case 3中嵌套的时候n=2,那个嵌套中直接走2,1不执行
开始n=1,所以从case1开始运行,因为没有break所以继续运行case2然后运行case3,运行case3时,switch(n),其中的n等于2,所以运行下面的case2,(case1已经跳过了)然后内循环结束,运行case4,然后结束,所以m自增了三次。n自增了两次。(n等于2时代表的不是真,而是要进去case2中)
因为加不加内层的Switch的break都一样,这个break表示的是内层Switch的结束,会继续走到外层的case 3:;
看代码调试:
第一步:
第三步:
第四步-m值:
第五步-n值: