JavaScript: The Definitive GuideJavaScript: The Definitive GuideSearch this book

6.7. do/while

The do/while loop is much like a while loop, except that the loop expression is tested at the bottom of the loop rather than at the top. This means that the body of the loop is always executed at least once. The syntax is:

do
    statement
while (expression); 

The do/while statement is implemented in JavaScript 1.2 and later and standardized by ECMAScript v3.

The do/while loop is less commonly used than its while cousin. This is because, in practice, it is somewhat uncommon to encounter a situation in which you are always sure that you want a loop to execute at least once. For example:

function printArray(a) {
    if (a.length == 0)
        document.write("Empty Array");
    else {
        var i = 0;
        do {
          document.write(a[i] + "<br>");
        } while (++i < a.length);
    }
} 

There are a couple of differences between the do/while loop and the ordinary while loop. First, the do loop requires both the do keyword (to mark the beginning of the loop) and the while keyword (to mark the end and introduce the loop condition). Also, unlike the while loop, the do loop is terminated with a semicolon. This is because the do loop ends with the loop condition, rather than simply with a curly brace that marks the end of the loop body.

In JavaScript 1.2, there is a bug in the behavior of the continue statement (see Section 6.12) when it is used inside a do/while loop. For this reason, you should avoid the use of continue within do/while statements in JavaScript 1.2.



Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.