home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam    

JavaScript: The Definitive GuideJavaScript: The Definitive GuideSearch this book

6.12. continue

The continue statement is similar to the break statement. Instead of exiting a loop, however, continue restarts a loop in a new iteration. The continue statement's syntax is just as simple as the break statement's:

continue; 

In ECMAScript v3 and JavaScript 1.2, the continue statement can also be used with a label:

continue labelname; 

The continue statement, in both its labeled and unlabeled forms, can be used only within the body of a while, do/while, for, or for/in loop. Using it anywhere else causes a syntax error.

When the continue statement is executed, the current iteration of the enclosing loop is terminated and the next iteration begins. This means different things for different types of loops:

Note the difference in behavior of the continue statement in the while and for loops -- a while loop returns directly to its condition, but a for loop first evaluates its increment expression and then returns to its condition. Previously, in the discussion of the for loop, I explained the behavior of the for loop in terms of an equivalent while loop. Because the continue statement behaves differently for these two loops, it is not possible to perfectly simulate a for loop with a while loop.

The following example shows an unlabeled continue statement being used to exit the current iteration of a loop when an error occurs:

for(i = 0; i < data.length; i++) {
    if (data[i] == null)
        continue;  // Can't proceed with undefined data
    total += data[i];
} 

Like the break statement, the continue statement can be used in its labeled form within nested loops, when the loop to be restarted is not the immediately enclosing loop. Also, like the break statement, line breaks are not allowed between the continue statement and its labelname.



Library Navigation Links

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











??????????????@Mail.ru