2017-03-10 107 views
-5

例如,會發生什麼,如果我說:在C中,當for循環的條件在開始時沒有滿足時會發生什麼?

for(i = 2; i < 2; i++) 

顯然,這是一個無用的循環,但也許I = A,A是由別的設置。那麼在這種情況下會發生什麼?

+1

難道你不能在大約兩分鐘內寫出一些代碼來回答這個問題嗎? –

+0

https://ideone.com/guKsdG – PSkocik

+0

@KenWhite我的編譯器正在行動,否則我會測試它。 – RothX

回答

2

循環的迭代都不會執行。

實際上這種循環(條件是所述條件沒有副作用)

for(i = 2; i < 2; i++) { /* ... */ } 

相當於本聲明

i = 2; 
1

的for循環的條件每次迭代之前檢查,包括第一個;所以你的循環體將永遠不會被執行。

0

for循環的工作方式是它檢查的條件(在你的情況i < 2)和執行情況立即失敗,無論是{ }或任何代碼之間在以下幾行

當你在初始化i2沒有執行。

實質上,內部的任何代碼都不會執行,因爲循環不會執行。

0

for循環中,在第一次迭代之前評估條件。這意味着在你的例子中,循環的內容不會被執行,因爲i已經大於或等於2

實施例的代碼路徑:

  1. i = 2
  2. 檢查i < 2
  3. 退出循環,因爲步驟2評估爲false。

i仍然會被修改,但是,因爲變量初始化(即i = 2)仍然發生在條件被檢查之前。

相關問題