15.6 循环控制

15.6.1 break语句

break用于终止当前整个循环体。一般情况下,break都是和if判断语句一起使用的,当if条件满足时使用break终止循环。

15.5节中的九九乘法表看起来有点怪:有一半的内容是重复的,这时候就可以用break让程序更智能一点了。仔细观察可发现,内循环中的j的值会不断加1,只要j的值不超过i,内循环就会继续运行,即在内循环中判断j是否小于或等于i,返回真时继续循环,否则终止循环,这样打印出来的九九乘法表应该是一个三角形。按照这个思路将for循环的九九乘法表修改如下形式:


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

  2. #!/bin/bash

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

  4. do

  5. for ((j=1; j<=9; j++))

  6. do

  7. if [[ $j -le $i ]]; then #j

  8. 小于等于i

  9. 时运算

  10. let "multi=$i*$j"

  11. echo -n "$i*$j=$multi "

  12. else

  13. break #j

  14. 一旦大于i

  15. 则立即停止当前循环

  16. fi

  17. done

  18. echo

  19. done

  20. #

  21. 运行结果

  22. [root@localhost ~]# bash break01.sh

  23. 1*1=1

  24. 2*1=2 2*2=4

  25. 3*1=3 3*2=6 3*3=9

  26. 4*1=4 4*2=8 4*3=12 4*4=16

  27. 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25

  28. 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36

  29. 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49

  30. 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64

  31. 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81


读者可以尝试自行修改while的九九乘法表,并使运行结果和此处一致。