Q: | 「If Exp1 And
Exp2 Then」 與 「If
Exp1 Then If
Exp2 Then」, 何者速度較快呢?
|
||
A: | 結果是 If X >= 10 Then If X <= 20 Then
較快, 原因呢?
在 If X >=10 And X <= 20 Then 判斷式中, X >= 10 And X <=20 總共經過 X >= 10、X <= 20 、 及 And 三次運算, 但是對 If X >= 10 Then If X <= 20 Then 而言, 若 X >= 10 得到 False, 就不會再進行 X <= 20 的運算, 這是速度較快的主要原因。 很多使用者會以為 If X >=10 And X <= 20 Then 在判斷 X >= 10 為 False 之後, 就不會再進行 X <= 20 的判斷, 其實這是錯誤的, 舉例來說, 有些人就會犯以下的錯誤: If X <> 0 And Y/X <= 1 Then 由於 Y/X 之中的 X 不可以等於 0, 所以在 Y/X <= 1 之前先加上 X <> 0, 但結果呢? 當 X = 0 時, Y/X <= 1 還是會被運算, 以致產生錯誤, 所以必須改寫成: If X <> 0 Then If Y/X <= 1 Then ... End If End If |