2014-03-27 74 views
0

我想知道爲什麼這個循環在VB.NET中不顯示任何東西。For Loop Step -1

我認爲這段代碼會創建一個無限循環。但它沒有顯示任何東西。

Dim i as Integer 
For i = 1 to 3 Step - 1 
    MessageBox.Show(i) 
Next 

是否與此代碼(在java/c#中)有所不同?

for(int i = 1;i <= 3;i--) 
{ 
    // print i 
} 

回答

1

它不會顯示任何內容,因爲您正在向後運行計數器而不反轉開始和結束條件。

這樣想着循環:

Dim counter As Int32 = 1 
Do 
    If counter <= 1 Then 
    Exit Do 
    End If 
    Console.WriteLine("The counter is at " & counter) 
    counter +=1 
Loop 

顯然,這將無法正常工作。 你需要扭轉的開始和結束的條件:

For counter = 3 To 1 Step -1 
    Console.WriteLine("counter: " & counter) 
Next 
+0

是的,如果我反轉開始和結束條件它將工作。但我好奇爲什麼這個循環不會產生無限循環? –

+0

我向你展示了代碼第一位的原因。 –

0
For i = 1 to 3 Step - 1 

它不會產生無限循環。循環將被簡單地跳過,因爲無法從1到3以及步長值-1。

是否與此代碼(在java/c#中)有所不同?

由於初始值(i = 1)符合退出條件(i <= 3),此循環也將立即結束。

+0

'這個循環也會立即結束,',你的意思是第二個循環不打印任何東西? –

+0

正確。循環被跳過,因爲它的出口條件在迭代一次之前就滿足了。 – computerfreaker