Node:Continue Statement, Next:Next Statement, Previous:Break Statement, Up:Statements
continue StatementAs with break, the continue statement is used only inside
for, while, and do loops. It skips
over the rest of the loop body, causing the next cycle around the loop
to begin immediately. Contrast this with break, which jumps out
of the loop altogether.
The continue statement in a for loop directs awk to
skip the rest of the body of the loop and resume execution with the
increment-expression of the for statement. The following program
illustrates this fact:
BEGIN {
for (x = 0; x <= 20; x++) {
if (x == 5)
continue
printf "%d ", x
}
print ""
}
This program prints all the numbers from 0 to 20--except for 5, for
which the printf is skipped. Because the increment x++
is not skipped, x does not remain stuck at 5. Contrast the
for loop from the previous example with the following while loop:
BEGIN {
x = 0
while (x <= 20) {
if (x == 5)
continue
printf "%d ", x
x++
}
print ""
}
This program loops forever once x reaches 5.
The continue statement has no meaning when used outside the body of
a loop. Historical versions of awk treated a continue
statement outside a loop the same way they treated a break
statement outside a loop: as if it were a next
statement
(see The next Statement).
Recent versions of Unix awk no longer work this way, and
gawk allows it only if --traditional is specified on
the command line (see Command-Line Options). Just like the
break statement, the POSIX standard specifies that continue
should only be used inside the body of a loop.
(d.c.)