2010-10-28 61 views
4

我希望它運行三次,但它實際上從來沒有運行循環,並出去。 在VB 6.0中,我可以用類似的結構來做到這一點,但是如何用C#for循環實現同樣的功能呢?我想以倒計時但並非總是如此,有時我傳遞「1」,有時「-1」的步驟,當通過「-1」,這是行不通的在C中ForLoop的一個簡單問題#

for (int L = 3; L <= 1; L += -1) 
    { 
     MessageBox.Show("dfsdff"); 
    } 

回答

7

是因爲你有第二個條款(「繼續下去,而這是真的」條款)周圍的錯誤的方式,試試這個:

for (int L = 3; L >= 1; L--) 
    { 
     MessageBox.Show("dfsdff"); 
    } 

現在它說:「開始於3」,「減量」 ( - ),而L是大於或等於1

6

它看起來像你的終端條件L <= 1是什麼讓你失望。

你可能是想扭轉這種情況,並說L >= 1。否則,當L初始化爲3,然後評估終端時,它會立即返回錯誤,說明L大於1,因此終止您的循環。

3

for循環可以寫出如下:

for(variable L = 3; as long as L satisfies condition L <= 1; increment L by -1) 

信用證將永遠是大於1,所以循環永遠不會被執行。正確的做法是,要麼:

for(int L = 0; L <= 2; L++) 

for(int L = 2; L >= 0; L--) 
如果你想開始1

,只需相應修改。

-1

試試這個:

for (int L = 3; L >= 1; L--) 
    { 
     MessageBox.Show("dfsdff"); 
    } 

這應該倒計時你,我已經糾正它。他們是正確的,這是一個無限循環。這是另一種做法,可能會讓大腦更有意義。

int L = 3 
while(L > 0) 
{ 
    MessageBox.Show("Your clever message); 
    L--; 
} 
+1

但它不會終止! – codekaizen 2010-10-28 01:13:12

+2

這將倒計時好吧。倒計時很長時間。 – 2010-10-28 01:13:55

+0

這將顯示無限的消息框。 – Femaref 2010-10-28 01:14:14