int x=1,a=0,b=0;switch (x){case 0:b++;case 1:a++;case 2:a++;

1个回答

  • switch 语句中,case只是找到入口点,从该入口点开始所有的case都会执行,通常说它具有穿透性,如果想只执行某个case下面的代码,要在后面加上break,表明中断处理.

    #include

    int main()

    {

    int x=1,a=0,b=0;

    switch (x)

    {

    case 0:

    b++;

    case 1://x=1,所以,从这里入口开始往下执行

    a++;//a变成1

    case 2:

    a++;//a变成2

    b++;//b变成1

    }

    //最后输出为2,1

    printf("%d,%d",a,b);

    return 0;

    }

    //加上break语句就会中断处理了,如:

    int x=1,a=0,b=0;

    switch (x)

    {

    case 0:

    b++;

    break;

    case 1://x=1,所以,从这里入口开始往下执行

    a++;//a变成1

    break;//中断

    case 2:

    a++;

    b++;

    break;

    }

    这时候算出来的结果就是1,0了.