Looping allows you to execute a group of statements again and again
until a condition is False; others repeat
statements until a condition is True. There are also loops that
repeat statements in a specific number of times.
The following looping statements are available in VBScript:
Do...Loop: Loops while or until a condition is True.
While...Wend: Loops while a condition is True.
For...Next: Repeats a counter to run statements in a specified number of time.
of times.
For Each...Next: Repeats a group of statements for each item in
a collection or each element of an array.
VBScript:- Do Loops
You can use Do...Loop
statements to execute a block of statements an indefinite number of times. The
statements are repeated either until a
condition becomes True or while a condition is True
Repeating Statements while Condition gets satisfied
While keyword is used to
check a looping condition in a Do...Loop statement. You can also check the condition before
you enter the loop (as shown in the following ChkFirstWhile example), or you can
check it after the loop has run at least once (as shown in the ChkLastWhile
example). In the ChkFirstWhile procedure, if myNum is set to 9 instead of 20,
the statements inside the loop will never run. In the ChkLastWhile procedure,
the statements inside the loop run only once because the condition is already
False.
Sub ChkFirstWhile()
Dim counter, myNum
counter = 0
myNum = 20
Do While myNum > 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub
Sub ChkLastWhile()
Dim counter, myNum
counter = 0
myNum = 9
Do
myNum = myNum - 1
counter = counter + 1
Loop While myNum > 10
MsgBox "The loop made " & counter & " repetitions."
End Sub
Repeat a Statement Until Condition Becomes True
You can use the Until
keyword in two ways to check a condition in a Do...Loop statement. You
can check the condition before you enter the loop (as shown in the following
ChkFirstUntil example), or you can check it after the loop has run at least once
(as shown in the ChkLastUntil example). As long as the condition is False,
the looping occurs.
Sub ChkFirstUntil()
Dim counter, myNum
counter = 0
myNum = 20
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub
Sub ChkLastUntil()
Dim counter, myNum
counter = 0
myNum = 1
Do
myNum = myNum + 1
counter = counter + 1
Loop Until myNum = 10
MsgBox "The loop made " & counter & " repetitions."
End Sub
You can exit a Do...Loop
by using the Exit Do statement. Because if you want to exit only in
certain situations, such as to avoid an endless loop, you should use the Exit
Do statement in the True statement block of an If...Then...Else
statement. If the condition is False, the loop runs as usual.
VBScript: While-wend Loop
While-Wend Loop is a loop that keeps looping while something is true. Everytime it loops the block of code which is inside the while loop and gets executed.
When you know how many repetitions you want,you can use a For...Next statement to execute a block of code.
You can increase or decrease the value of counter variable using the Step keyword. The example given below the counter variable j is incremented by 2 each time the loop repeats. When the loop is finished, total is the sum of 2, 4, 6, 8, and 10.
Note:By Exit For keyword you can exit from For...Next statement whenever you want.
Sub TwosTotal()
Dim j, total
For j = 2 To 10 Step 2
total = total + j
Next
MsgBox "The total is " & total
End Sub
For Each...Next Loop
A For Each...Next loop
is similar to a For...Next loop. Instead of repeating the statements a
specified number of times, a For Each...Next loop repeats a group of
statements for each element of an array or each item in a collection of objects.
This is specially helpful if you don't know how many elements are in a
collection of objects.