2017-02-08 51 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編譯器中執行,不在代碼塊編譯器中執行。謝謝 –

相關問題