什么是程序输出 - 开关案例?

时间:2015-07-01 19:43:48

标签: c switch-statement

int main() {
    int i = 1 ;
    switch( i==2) { /* This line */
        case  0: printf("zero "); break;
        case  1: printf("one "); break;
        case  2: printf("two "); break;
        default: printf ("what?"); break;
   }
}

输出是什么?我无法理解转换括号中的表达式。

2 个答案:

答案 0 :(得分:2)

i==2不等于{{0时,表达式1仅评估为0false - i2)当1等于true时,1}}和i2)。 switch语句下的其他情况都没用。

在您的情况下,值i设置为1i==2评估为0。因此,您应该将zero作为输出。

答案 1 :(得分:0)

您在切换案例i==2中使用布尔表达式将始终导致1(True)或0(False)。没有必要使用case 2:default:语句。

现在执行切换表达式i==2时会从case 0跳转到i=1并且您正在检查它是否等于2.

因此在C编程的情况下会导致false,0。最后打印