2017-02-08 6 views
-3

forループの状態で0を書き込んだので、一度実行され、0の代わりにjを書いたときにjが0に初期化されました。一度でも実行されません。その背後にある理由は何ですか?同じ値の変数litteralまたは変数を使用すると、ループの条件が異なります

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

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

最初のものは、一度実行が、次の1は実行されませんでした。

+4

これらのループは実行しないでください。 – odin

+3

[私は両方が実行されていないことを確信しています。](http://ideone.com/jwFbeN)あなたのコンパイラは何ですか? – LPs

+1

[MCVE](http://stackoverflow.com/help/mcve) – LPs

答えて

0

これはあなた自身が答えることができる基本的なCの質問です。 forコンストラクトの2番目のパラメータは条件付きです。 trueと評価された場合、ループは続行されます。 falseと評価された場合、ループは停止します。

2番目のパラメータをリテラル0に設定するか、0に設定された変数jに設定すると、その値を論理falseに評価する値に設定します。

+0

これはコードが行うことですが、OPは最初のもの(リテラル付き)が実行されていることを私たちに伝えています。 – LPs

+0

私は彼が明らかにコミュニケーションしていないと思うのは、明らかに知っているように、それは起こり得ないからです。 :) –

+0

しかし、リテラル0のforループはターボコンパイラで実行され、コードブロックコンパイラでは実行されません。ありがとうございました –

関連する問題