【发布时间】:2016-11-17 09:48:17
【问题描述】:
例如,也许我们有一个 if 语句想要检查一个变量是否等于 4 个不同的值,可能类似于
if(x == 1,2,3,4){ do something }
在 C 中执行此操作的正确语法是什么?我知道逗号可以在其他语言中使用,我似乎无法弄清楚如何没有几个不同的 if 检查。我唯一能想到的另一件事就是不得不做
if((x == 1)||(x ==2)
但毫无疑问,我会拥有超过 4 个,这会很快变得烦人。我没有看到任何其他类似的问题,如果您知道,请指出我。
【问题讨论】:
-
不幸的是,这就是 C 的工作方式。您必须分别检查每个组合。
-
问题是C接近硬件。您的 CPU 无法同时将一个值与多个值进行比较,这是不可能的。在具有“如果 x 在 [1 到 n] 区间内”之类的高级语言中,您最终仍然会得到类似于
if(x == item[0] || == item[1] ...的机器代码。高级语言对程序员隐藏了这种低效率,而 C 不会试图粉饰它。 -
啊,是的,我一直忘记关于 C 的这一点以及我尝试学习它的原因。谢谢@Lundin