• 本页内容

74. break 语句


break 语句用于跳出包围它的最内层循环(whiledo-whilefor 循环)。

注意:只有在循环中使用 条件 时,break 语句才有意义。

以下示例打印某个月份没有售出商品的任何商品编号,即 field2field7 中的任意一个值都为 0。

$ cat break.awk
{
    i=2; total=0;
    while (i++ <= NF)
        if ($i == 0) {
            print "Item", $1, "had a month with no item sold"
            break;
        }
}

$ awk -f break.awk items-sold.txt
Item 102 had a month with no item sold
Item 104 had a month with no item sold

如果执行以下命令,请按 Ctrl-C 停止脚本并中断它。

$ awk 'BEGIN{while(1) print "forever"}'

上面的 awk while 循环永远打印字符串 "forever",因为条件永远不会失败。 通常这不是一件好事,尽管在过程控制或操作系统应用程序中使用了永远循环!

让我们修改循环,使其恰好执行十次并由 break 语句终止。

$ awk 'BEGIN{
x=1;
while(1)
{
print "Iteration";
if ( x==10 )
break;
x++;
}
}' 

上述命令产生以下输出:

Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration