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;
}
}
输出是什么?我无法理解转换括号中的表达式。
答案 0 :(得分:2)
当i==2
不等于{{0
时,表达式1
仅评估为0
或false
- i
(2
)当1
等于true
时,1}}和i
(2
)。 switch语句下的其他情况都没用。
在您的情况下,值i
设置为1
,i==2
评估为0
。因此,您应该将zero
作为输出。
答案 1 :(得分:0)
您在切换案例i==2
中使用布尔表达式将始终导致1
(True)或0
(False)。没有必要使用case 2:
和default:
语句。
现在执行切换表达式i==2
时会从case 0
跳转到i=1
并且您正在检查它是否等于2.
因此在C编程的情况下会导致false,0。最后打印
零