2017-06-01 24 views
1
For num = 100 To 5 Step -5 
     TextWindow.WriteLine(num) 
    EndFor 

控制檯中顯示的此代碼的最終值爲5.但是,如果在For循環之外使用'num'變量,則'num'的值將爲0.爲什麼當我指定停止在5時,數字不是5?這裏發生的計算機邏輯是什麼?基本:爲什麼結果與此For循環中的值不同?

For num = 100 To 5 Step -5 
     TextWindow.WriteLine(num) 
    EndFor 
    TextWindow.WriteLine(num) 

通過上面的代碼段,用於在控制檯中「民」的終值顯示爲0。

謝謝大家提前抽時間幫我這個初學者的問題!

回答

1

此代碼

For num = 100 To 5 Step -5 
    ' Body 
EndFor 

相同

num = 100 

While num >= 5 
    ' Body 

    num = num - 5 
End While 

所以循環結束時num得到0

(很抱歉,如果有在我提供的代碼一些錯誤,我寫它的心臟)

+0

啊!因此,計算機處理後操作符就好像它被附加到主體的末尾一樣。謝謝你的幫助@Gabriel – Matthias

+0

沒錯。不用謝。 – Gabriel

+0

這是關於任何語言For循環的真理。循環內的所有值都將在該範圍內有效。一旦循環完成,控件的值將保證在該範圍之外。 – codingCat

1

爲什麼num的值不是5當我指定停在5?

準確地說,您指定5是最後一個要處理的值(也就是說,當num爲5時,循環體仍然運行)。在迭代結束時,計數器(num)遞減並開始下一次迭代。 num現在爲零(小於5),因爲現在滿足停止條件而退出循環。這就是你如何得到這個輸出。

+0

所以當NUM低於5號For循環纔會停止?這意味着它不是測量小於或等於的數字,它只是小於? – Matthias

+0

@Matthias:看起來如此。文檔說什麼? –

+0

「計數重複,直到變量等於或超過最終值End。」引自https://social.technet.microsoft.com/wiki/contents/articles/16388.the-developers-reference-guide-to-small-basic-2-overview-of-small-basic-programming.aspx – Matthias