注册 登录
编程论坛 C语言论坛

switch函数的小问题

持剑的战士 发布于 2020-01-04 09:55, 1618 次点击
#include<stdio.h>
int main()
{
    int x=1,y=0,a=0,b=0;
    switch(x)
    {
        case 1:switch(y)
               {
                       case 0:a++;break; 是不是执行完这一步就跳出这个switch(y)
                       case 1:b++;break;
               }
        case 2:a++,b++;break; 然后再执行一下这行代码,就结束呢?是不是不需要再次考虑case 2了?
        case 3:a++,b++;break;
    }
    printf("a=%d,b=%d\n",a,b);
}
答案是a=2,b=1。
2 回复
#2
吕孟伟2020-01-04 10:50
第一个问题:是不是执行完这一步就跳出这个switch(y)?
答:是的。
第二个问题:然后再执行一下这行代码,就结束呢?是不是不需要再次考虑case 2了?
答:由于case 1:switch(y){...}中没有break,因此紧接着执行case 2:a++,b++;break;执行完这条语句后退出switch。
#3
持剑的战士2020-01-04 10:53
回复 2楼 吕孟伟
谢谢大佬,我明白啦
1