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

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

7.4.6 The 'break' Statement
---------------------------

The 'break' statement jumps out of the innermost 'for', 'while', or 'do'
loop that encloses it.  The following example finds the smallest divisor
of any integer, and also identifies prime numbers:

     # find smallest divisor of num
     {
         num = $1
         for (divisor = 2; divisor * divisor <= num; divisor++) {
             if (num % divisor == 0)
                 break
         }
         if (num % divisor == 0)
             printf "Smallest divisor of %d is %d\n", num, divisor
         else
             printf "%d is prime\n", num
     }

   When the remainder is zero in the first 'if' statement, 'awk'
immediately "breaks out" of the containing 'for' loop.  This means that
'awk' proceeds immediately to the statement following the loop and
continues processing.  (This is very different from the 'exit'
statement, which stops the entire 'awk' program.  *Note Exit
Statement::.)

   The following program illustrates how the CONDITION of a 'for' or
'while' statement could be replaced with a 'break' inside an 'if':

     # find smallest divisor of num
     {
         num = $1
         for (divisor = 2; ; divisor++) {
             if (num % divisor == 0) {
                 printf "Smallest divisor of %d is %d\n", num, divisor
                 break
             }
             if (divisor * divisor > num) {
                 printf "%d is prime\n", num
                 break
             }
         }
     }

   The 'break' statement is also used to break out of the 'switch'
statement.  This is discussed in *note Switch Statement::.

   The 'break' statement has no meaning when used outside the body of a
loop or 'switch'.  However, although it was never documented, historical
implementations of 'awk' treated the 'break' statement outside of a loop
as if it were a 'next' statement (*note Next Statement::).  (d.c.)
Recent versions of BWK 'awk' no longer allow this usage, nor does
'gawk'.

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