最终结果——m=3
switch
(a%3)
→ a为16,a%3为1
→
执行
case
1
→
m初值为0,m++为1。注意,这里case1
并没有break,所以会继续向下执行完整个switch
(a%3)
→
执行switch
(b%2)
→
b为21,b%2为1
→
执行default
→
m为1,m++为2
→
注意这里依然会继续执行case0
→
m++为3,break跳出switch
(b%2)
→ switch
(a%3)语句结束
→
执行printf,此时m为3。
#include
void main() {
int a=16,b=21,m=0;
switch(a%3) {
case 0:m++; break;
case 1:m++;
switch(b%2) {
default: m++;
case 0:m++;break;
}
}
printf("m=%d\n",m);
}
运行结果