既然 C 语言中没有true
false
布尔类型,那么表达式的x == y
计算结果是什么,什么时候为真,什么时候为假?
如果它的计算结果分别为 1 和 0,它们都是整数,为什么我们不能使用case
s 这样的表达式来表示switch
语句?
这背后的正确原因是:
- case 只允许整数表达式或计算为整数且 x == y 不会计算为整数的表达式(我不知道如何计算)?或者
- 如果 switch 允许像 case 这样的表达式,那么很可能多个 case 最终会具有相同的值,即,只要
x==y
,我们将得到 1,因此多个这样的 case 将评估为 1 或 0;这在 switch 语句中是不允许的。