Break Statement (The GNU Awk User’s Guide)
Next: Continue Statement, Previous: Switch Statement, Up: Statements [Contents][Index]
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. See section The 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 The 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 (see section The next Statement). (d.c.) Recent versions of BWK awk
no longer allow this usage, nor does gawk
.
Next: Continue Statement, Previous: Switch Statement, Up: Statements [Contents][Index]