为什么同时(1 <a <5)是无限循环?

时间:2019-01-02 06:18:29

标签: c comparison-operators

int a = 2;   
while (1 < a < 5)  {
      printf("%d\n", a);
      a = a + 1;
}

在C程序中,我使用了上面的代码,但是它总是无限计数。这意味着while循环的测试条件始终为true。但是我不明白为什么会这样。

3 个答案:

答案 0 :(得分:9)

1 < a < 5分组为(1 < a) < 5

对于您的值a1 < a返回1(真),所以现在您的表达式变为1 < 5,其总值为1,即为什么最终会陷入无限循环。

您可以通过编写while((1 < a) && (a < 5))来获得所需的行为。

答案 1 :(得分:1)

对于任何ggplot(df, aes(status, val, group = category, colour = category)) + geom_point() + stat_summary(geom = "line", fun.y = "mean") 的值,表达式1 < a < 5都是1,并且a循环。

它分为while (1)(1 < a) < 51 < a0,它们都小于5。

您要1吗?

答案 2 :(得分:0)

由于条件1,循环无限次运行

这可能会有所帮助:

int a = 2;

while(a <5)

{

printf(“%d \ n”,a);

a = a + 1;

}