manpagez: man pages & more
info gawk
Home | html | info | man

File: gawk.info,  Node: Continue Statement,  Next: Next Statement,  Prev: Break Statement,  Up: Statements

7.4.7 The 'continue' Statement
------------------------------

Similar to '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, because the increment
('x++') is never reached.

   The 'continue' statement has no special meaning with respect to the
'switch' statement, nor does it have any 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 (*note Next
Statement::).  (d.c.)  Recent versions of BWK 'awk' no longer work this
way, nor does 'gawk'.

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.