如何在一个语句下用(a< b< c)写一个for循环?

时间:2012-03-10 02:19:42

标签: c++

我正在尝试做一个看起来像这样的for循环。

int a = 3;
int b;
int c = 20;
for ( a = 1; a < b < c; ++a )

但程序不能像这样工作。我怎么想正确说明中间的一个&lt; b&lt; C吗?

1 个答案:

答案 0 :(得分:8)

a < b < c更改为a < b && b < c

解释

原因是,<是从左到右进行评估的,因此您的语句的评估方式如下:

a < b < c  -->  (a < b) < c

(a < b)是一个布尔值(0或1),c与该值进行比较。

如果您同时拥有a < bb < c,因为<transitive,您就会知道数学a < b < c成立。

注意:看一下C operator precedence table,您可以看到表达式a < b && b < c中,首先评估了a < bb < c ,然后结果是“和”编辑。

你的例子

在您的示例中,由于b未设置,a < b未知,但无论是0还是1,它肯定小于c 20。所以基本上你有一个无限循环。