15.6.2 continue语句

continue语句用于结束当前循环转而进入下一次循环——注意,这是和break不同的地方:continue并不会终止当前的整个循环体,它只是提前结束本次循环,而循环体还将继续执行;而break则会结束整个循环体。下面的示例用continue打印了1到100之间的所有素数。根据素数的定义,素数只能被1和其自身整除。所以该程序应该用嵌套循环:外部循环是从1到100依次列举100个整数;内部循环是判断该数是否能被从2开始(包括2)到其本身的值为止(不包括本身)的数整除,如果存在这样的数,那么它就不是素数;不是素数就会立即continue到下一个数继续计算。


  1. [root@localhost ~]# cat continue_02.sh

  2. #!/bin/bash

  3. for ((i=1; i<=100; i++))

  4. do

  5. for ((j=2; j<i; j++))

  6. do

  7. if !(($i%$j)); then

  8. continue 2

  9. #continue

  10. 后面的数字代表跳出循环的嵌套数,这里代表跳出了两层循环

  11. fi

  12. done

  13. echo -n "$i "

  14. done

  15. echo

  16. #

  17. 运行结果

  18. [root@localhost ~]# bash continue_02.sh

  19. 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