案例5如何在此Switch语句中执行?

时间:2011-09-25 12:07:18

标签: c

我有以下代码(取自C书):

#include<stdio.h>

int main( )
{
  int k=4,j=0;

  switch(k)
  {
  case 3:
    j=300;

  case 4:
    j=400;

  case 5:
    j=500;
  }

  printf("%d",j);
}

当我运行上面的代码时,我得到500的输出,但我希望它是400,任何人都可以打印500而不是400 }?

(我是C的新手,我无法弄清楚它中的错误!)

3 个答案:

答案 0 :(得分:5)

您需要在个案块结尾处break;

#include <stdio.h>
int main()
{
    int k = 4, j = 0;
    switch(k)
    {
        case 3:
            j = 300;
            break;
        case 4:
            j = 400;
            break;
        case 5:
            j=500;
            break;
    }
    printf("%d\n", j);
}

答案 1 :(得分:5)

你需要打破你的案件,否则它将贯穿其他案件:

int main( )
{
    int k=4,j=0;
    switch(k)
    {
    case 3:
        j=300;
        break;
    case 4:
        j=400;
        break;
    case 5:
        j=500;
        break;
    }
    printf("%d",j);
}

所以在你的情况下,它确实执行了j=400,然后转到case 5:并执行j=500

答案 2 :(得分:3)

在案例4之后没有中断声明,因此执行“落到”案例5中。