dongmei 发表于 2022-1-16 23:03:56

求助求助

main()
{
        int k=5,n=0;
        while(k>0)
        {
                switch(k)
                {
                        default:break;
                        case 1: n += k;
                        case 2:
                        case 3: n += k;
                }
                k--;
        }
        printf("%d\n",n);
}


这个输出为什么是7呀

壊人shmily 发表于 2022-1-16 23:21:12

1.当k=3的时候,执行n+=k ;n=3;
2.当k=2的时候,因为case 2:没有break, 所以会执行case 3的 n+=k; n=5;
3.当k=1的时候,因为case 1和case 2:没有break, 所以会执行case 1和case 3的 n+=k; n=7;

dongmei 发表于 2022-1-17 10:07:02

壊人shmily 发表于 2022-1-16 23:21
1.当k=3的时候,执行n+=k ;n=3;
2.当k=2的时候,因为case 2:没有break, 所以会执行case 3的 n+=k; n=5;
3 ...

谢谢
页: [1]
查看完整版本: 求助求助