我不明白为什么要提供这个输出?

时间:2014-03-11 13:01:51

标签: c switch-statement

#include <stdio.h>
void main ()
{
    int i=0;
    for (i=0; i<21; i++)
    {
        switch(i)
        {
            case 0:
            i+=5;
            case 1:
            i+=2;
            case 5:
            i+=5;
            default:
            i+=4;

            break;
        }
        printf("%d   ",i);
    }
    getchar();
}

现在这个程序的输出是16 21我不明白为什么这个程序在循环限制小于18时给出这个输出它只给出16但是当值大于18时输出是16 21 any帮助

1 个答案:

答案 0 :(得分:6)

您需要在每个案例结尾处放置break个陈述。否则,每个案件都会落到&#39;到下一个。