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

use*_*754 -1 c switch-statement relational-operators

既然true falseC 中没有布尔类型,那么表达式的x == y计算结果是什么,什么时候为真,什么时候为假?

如果它的计算结果分别为 1 和 0,它们是整数,为什么我们不能caseswitch语句中使用s这样的表达式?

这背后的正确原因是:

  1. case 只允许整数表达式或计算为整数的表达式,而 x == y 不会计算为整数(我不知道如何计算)?或者
  2. 如果 switch 允许像 case 这样的表达式x==y,那么多个 case很有可能最终具有相同的值,即,无论何时,我们都会得到 1,因此多个这样的 case 将评估为 1 或 0;这在 switch 语句中是不允许的。

MSa*_*ers 5

原因是不是类型x==y,但事实上case需要一个常数。x==y通常不是常数。