新觀念的 VB5 教本

每週一問: 挑戰您的 VB 功力 (初級篇, 97/11/16)


Q: 以下兩種迴圈哪一個速度比較快?
' 迴圈一
i = 1
While i <= Len(S)
  ... Do Something
  i = i + 1
Wend
' 迴圈二
For i = 1 To Len(S)
  ... Do Something
Next
A: 迴圈二比較快, 但只快一點點, 實際上並不明顯。

迴圈二比較快的原因是, For i = 1 To Len(S) 迴圈中的 Len(S) 只會計算一次,舉例來說, 若 S = "12345", 則 For i = 1 To Len(S) 相當於 For i = 1 to 5, 將來不管 S 字串發生什麼變化, 迴圈還是執行 5 次。

至於迴圈一 While i <= Len(S) 中的 Len(S) 則是迴圈每執行一次, 就計算 S 的長度一次, 因此, 若 S 字串在迴圈中有所改變(例如長度變長或變短), While 迴圈的執行次數就會受到影響。