"Do While" "Loop" and "While" "Wend" Loop. What's the difference?

An answer I referred to is no longer visible, but this answer still holds true. While/Wend is a hangover from Basic and Do/Loop should be your preferred syntax because:

  1. It supports checking the condition before entering the loop Do While [condition] ... Loop (zero or more loop executions)
  2. It supports checking the condition after entering the loop Do ... Loop While [condition] (one or more loop executions)
  3. It supports no specific condition Do ...(some logic) (Exit Do) ... Loop (one or more loop executions, potentially infinite)

I don't think there is much of a difference in their execution other than the syntactical options that While Wendis not capable of:

Do
    someCode
While (someCondition)

As for speed, I did a simple test:

Sub whileLoopTest()
Dim i As Long, j As Long
Dim StartTime As Variant

i = 1
StartTime = Timer

While (i < 500000000)
    j = i + 2
    i = i + 1
Wend

Debug.Print "While execution time: " & Timer - StartTime
End Sub


Sub doWhileTest()
Dim i As Long, j As Long
Dim StartTime As Variant

i = 1
StartTime = Timer

Do While (i < 500000000)
    j = i + 2
    i = i + 1
Loop

Debug.Print "Do While execution time: " & Timer - StartTime
End Sub

Results:

While execution time: 6,429688  
While execution time: 6,429688
While execution time: 6,441406
Do While execution time: 6,429688
Do While execution time: 6,449219
Do While execution time: 6,4375

Tags:

Loops

Excel

Vba