C 为什么while(1<;a<;5)是一个无限循环? inta=2; 而(1

C 为什么while(1<;a<;5)是一个无限循环? inta=2; 而(1,c,comparison-operators,C,Comparison Operators,在C程序中,我使用了上面的代码,但它总是无限计数。这意味着while循环的测试条件始终为true。但我不明白为什么会发生这种情况。循环无限次地运行,因为条件是 这将有助于: INTA=2 而(a循环无限次运行,因为 这将有助于: INTA=2 而(a1

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

循环无限次地运行,因为条件是 这将有助于:

INTA=2


而(a循环无限次运行,因为 这将有助于:

INTA=2


而(a
1
被分组为
(1

对于
a
的值,
1
返回
1
(true),因此现在表达式变为
1<5
,它的计算结果总是
1
,这就是为什么会出现无限循环


你想要的行为可以通过写
而不是((1
来获得。

1
被分组为
(1

对于
a
的值,
1
返回
1
(true),因此现在表达式变为
1<5
,它的计算结果总是
1
,这就是为什么会出现无限循环


您想要的行为可以通过写入
while((1
来获得。

表达式
1
1
表示
a
的任何值,以及
while(1)
循环

它被分组为
(1
1
0
1
,两者都小于5


您想要
1

表达式
1
对于
a
的任何值都是
1
,并且
while(1)
循环

它被分组为
(1
1
0
1
,两者都小于5


您想要
1

欢迎来到!这可能会让您感到惊讶,但您的问题在这里是离题的。我们处理的是计算机科学问题,而不是编程问题。请参阅我们的。您的问题可能在的主题上。此代码将帮助您。
printf(“%d\n”,1@burnabyRails谢谢,这非常有帮助。我想我需要了解更多有关这方面的信息…欢迎使用!这可能会让您感到惊讶,但您的问题在这里是离题的。我们处理的是计算机科学问题,而不是编程问题。请参阅我们的。您的问题可能在上。此代码将帮助您。
printf(“%d\n”,1@burnabyRails谢谢,这非常有帮助。我想我需要了解更多关于这方面的信息……但是,当a的值达到5时,它必须停止计数。这里的第一个条件为1,但当a的值达到5时,它必须停止计数。这里的第一个条件为1“
1
…被转换为
int
”--不太正确:
1
具有类型
int
(和值
1
)首先,请注意,<代码> 1 < A/E> > 0或1。它有<代码> int <代码>类型。不需要谈论<代码>真/ <代码>。这里,C与C++不同。你能指我在代码>上的一个源吗?operator@RcnSc:请参阅。@RcnSc:“每个运算符<(小于),>(大于),=(大于或等于)如果指定的关系为真,则应产生1,如果为假,则产生0。结果的类型为int。“直接相关:”表达式a“
1
…被转换为
int
”--不完全相关:
1
具有类型
int
(和值
1
)首先,请注意,<代码> 1 < A/E> > 0或1。它有<代码> int <代码>类型。不需要谈论<代码>真/ <代码>。这里,C与C++不同。你能指我在代码>上的一个源吗?operator@RcnSc:请参阅。@RcnSc:“每个运算符<(小于),>(大于),=(大于或等于)如果指定的关系为真,则应产生1,如果为假,则产生0。结果的类型为int。“直接相关:”表达式aThat表示::(1)表示::(1
int a = 2;   
while (1 < a < 5)  {
      printf("%d\n", a);
      a = a + 1;
}