第7.6节:awk语言 break 语句
1 第7.6节:awk语言 break 语句
break
语句用于跳出包含它的最内层 for
、while
或 do
循环。以下示例用于找出任意整数的最小除数,同时识别质数:
# 找出 num 的最小除数
{num = $1for (divisor = 2; divisor * divisor <= num; divisor++) {if (num % divisor == 0)break}if (num % divisor == 0)printf "Smallest divisor of %d is %d\n", num, divisorelseprintf "%d is prime\n", num
}
当第一个 if
语句中余数为 0 时,awk
会立即跳出包含它的 for
循环。这意味着 awk
会直接执行循环之后的语句,继续处理。(这与 exit
语句截然不同,exit
语句会终止整个 awk
程序。
以下程序演示了 for
或 while
语句的条件如何用 if
内部的 break
来替代:
# 找出 num 的最小除数
{num = $1for (divisor = 2; ; divisor++) {if (num % divisor == 0) {printf "Smallest divisor of %d is %d\n", num, divisorbreak}if (divisor * divisor > num) {printf "%d is prime\n", numbreak}}
}
break
语句也可用于跳出 switch
语句,在之前的章节中有所讨论。
break
语句在循环体或 switch
体之外使用时,没有实际意义。不过,尽管从未有过相关文档说明,但历史上的 awk
实现曾把循环外的 break
语句当作 next
语句处理。BWK awk
的最新版本不再允许这种用法,gawk
也是如此。
作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.