Exiting a Loop

Microsoft® Windows® 2000 Scripting Guide

microsoft windows 2000 scripting guide

« Previous | Next »   

After you have entered a Do loop, VBScript will, by default, process each line of code within that loop. In most cases, that is exactly what you want it to do. However, there might be times when you want to exit a loop immediately, without running every line of code. In that event, you can use the Exit Do statement to immediately stop processing of the loop.

For example, the following script has been designed to cause an error (dividing 5 by 0). The loop condition states, "Run this loop until an Err occurs" (Err <> 0). That might lead you to believe that the loop will stop as soon as the script attempts to divide 5 by 0.

On Error Resume Next Do Until Err <> 0     X = 5/0     Wscript.Echo "The result of the equation is " & X & "." Loop 

When you run the script, however, you see the dialog box shown in Figure 2.17.

Figure 2.17   Erroneous Message Box

Erroneous Message Box

Why? When the script encountered the divide by 0 error, it did not exit the loop, even though the loop condition specified, "Run this loop until an error occurs." Instead, it continued processing the remaining statements in the loop. This is because the loop condition, in this example, is tested only before the loop is running. As a result, the dialog box echoes the message, "The result of the equation is " and the result of the equation, which happens to be Null. After processing this statement, the script loops around, checks the error condition, and then exits the loop.

If you need to stop a loop before the loop actually completes, use the Exit Do statement. In the following script the error condition is checked within the loop itself. If an error has occurred, an error message is displayed, and the Exit Do command is used to stop the loop. If no error has occurred, the result of the equation is displayed.

On Error Resume Next Do Until Err <> 0     X = 5/0     If Err <> 0 Then         Wscript.Echo "An error has occurred."         Exit Do     End If         Wscript.Echo "The result of the equation is " & X & "." Loop 

When the preceding script runs, the message box shown in Figure 2.18 appears. As you can see, the script stopped the loop before processing the statement that would have displayed the equation result.

Figure 2.18   Message Box Indicating That an Error Has Occurred

Message Box Indicating That an Error Has Occurred


send us your feedback Send us your feedback « Previous | Next »   


Microsoft Windows 2000 Scripting Guide(c) Automating System Administration 2003
Microsoft Windows 2000 Scripting Guide(c) Automating System Administration 2003
ISBN: N/A
EAN: N/A
Year: 2004
Pages: 635

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net