Linux Shell程式設計(18)—— 迴圈控制

尹成發表於2014-09-30
影響迴圈行為的命令
break, continue
break和continue這兩個迴圈控制命令[1]與其它語言的類似命令的行為是相同的. break命令將會跳出迴圈,continue命令將會跳過本次迴圈下邊的語句,直接進入下次迴圈..


例子:break和continue命令在迴圈中的效果


#!/bin/bash


LIMIT=19  # 上限


echo
echo "Printing Numbers 1 through 20 (but not 3 and 11)."


a=0


while [ $a -le "$LIMIT" ]
do
 a=$(($a+1))


 if [ "$a" -eq 3 ] || [ "$a" -eq 11 ]  # Excludes 3 and 11.
 then
   continue      # 跳過本次迴圈剩下的語句.
 fi


 echo -n "$a "   # 在$a等於3和11的時候,這句將不會執行.
done 


# 練習:
# 為什麼迴圈會列印到20?


echo; echo


echo Printing Numbers 1 through 20, but something happens after 2.


##################################################################


# 同樣的迴圈, 但是用'break'來代替'continue'.


a=0


while [ "$a" -le "$LIMIT" ]
do
 a=$(($a+1))


 if [ "$a" -gt 2 ]
 then
   break  # Skip entire rest of loop.
  fi
  
   echo -n "$a "
  done
 
  echo; echo; echo
 
 exit 0


break命令可以帶一個引數.一個不帶引數的break迴圈只能退出最內層的迴圈,而break N可以退出N層迴圈.

相關文章