为什么我们不能在switch语句中使用关系表达式?

时间:2020-10-02 13:04:13

标签: c switch-statement relational-operators

由于C中没有true false布尔类型,表达式x == y的计算结果是什么,什么时候成立,什么时候成立?

如果它的结果​​分别为1和0(它们是整数),为什么我们不能对case语句使用诸如switch的表达式?

这是背后的正确原因:

  1. case仅允许使用整数表达式或计算结果为整数的表达式,而x == y不会计算为整数(我不知道怎么做)?或
  2. 如果switch允许使用case这样的表达式,则很有可能多个案例最终将具有相同的值,即,每当x==y时,我们将得到1,因此多个此类case将得出1或0;在switch语句中是不允许的。

1 个答案:

答案 0 :(得分:5)

原因不是x==y类型,而是case具有常数的事实。 x==y通常不是常数。

相关问题