15.6.2 continue语句
continue语句用于结束当前循环转而进入下一次循环——注意,这是和break不同的地方:continue并不会终止当前的整个循环体,它只是提前结束本次循环,而循环体还将继续执行;而break则会结束整个循环体。下面的示例用continue打印了1到100之间的所有素数。根据素数的定义,素数只能被1和其自身整除。所以该程序应该用嵌套循环:外部循环是从1到100依次列举100个整数;内部循环是判断该数是否能被从2开始(包括2)到其本身的值为止(不包括本身)的数整除,如果存在这样的数,那么它就不是素数;不是素数就会立即continue到下一个数继续计算。
- [root@localhost ~]# cat continue_02.sh
#!/bin/bash
for ((i=1; i<=100; i++))
do
for ((j=2; j<i; j++))
do
if !(($i%$j)); then
continue 2
#continue
后面的数字代表跳出循环的嵌套数,这里代表跳出了两层循环
fi
done
echo -n "$i "
done
echo
#
运行结果
[root@localhost ~]# bash continue_02.sh
1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97