2017-02-08 31 views
-3

我在for循环的条件下写了0,所以它一旦执行,当我写j而不是0并且j初始化为0时,for循环为即使一次也不执行。它背后的原因是什么?for循环中的条件在使用litteral或具有相同值的变量时有所不同

for(i=0;0;i++) 

j = 0; 
for(i=0;j;i++) 

执行一次第一个,但下一个未执行。

+4

这两个循环都不应执行。 – odin

+3

[我很确定这两个都没有执行。](http://ideone.com/jwFbeN)你的编译器是什么? – LPs

+1

您应该发布[MCVE](http://stackoverflow.com/help/mcve) – LPs

回答

0

这是一个基本的C问题,你应该能够自己回答。 for构造中的第二个参数是一个条件。如果它评估为真,则循环继续。如果评估结果为false,则循环停止。

当您将第二个参数设置为立即数0或设置为零的变量j时,您将其设置为一个计算结果为逻辑false的值。

+0

这就是代码所做的,但OP是告诉我们,第一个(与文字)是执行。 – LPs

+0

我怀疑他只是没有清楚地沟通,因为如你所知,这是不可能发生的。 :) –

+0

但是,带循环0的for循环在turbo编译器中执行,不在代码块编译器中执行。谢谢 –

相关问题