繼續迴圈的目的就是,如果在這次輪迴中,我不想做任何事情,我想要邁向下一次的輪迴,不是啦!是迴圈,邁向下一次的迴圈,我就可以用繼續迴圈的關鍵字。
那脫離迴圈呢?就想成脫離輪迴吧~當神人去了~不想再做迴圈裡的事情了!
YA! 終於把煩人的迴圈給介紹完了,接下來呢?
還有什麼可以端出來嗎?
當然有!在介紹完迴圈之後,就要跟大家介紹一下如何繼續迴圈和脫離迴圈。
什麼叫做繼續迴圈?
什麼又叫做脫離迴圈呢?
繼續迴圈的目的就是,如果在這次輪迴中,我不想做任何事情,我想要邁向下一次的輪迴,不是啦!是迴圈,邁向下一次的迴圈,我就可以用繼續迴圈的關鍵字。
那脫離迴圈呢?就想成脫離輪迴吧~當神人去了~不想再做迴圈裡的事情了!
所以言歸正傳:
繼續迴圈用的是 continue
脫離迴圈用的是 break
唉~就這兩個阿~講那麼多廢話
所以,不管是 for 迴圈、while 迴圈、甚至是 until 迴圈都可以使用這兩個關鍵字來繼續或跳脫迴圈。
最後,還是要來看個範例吧,這個範例會用到之前介紹的迴圈外,當然, continue 和 break 也會在裡面:
#!/bin/bash
IsQuit="FALSE"
Week=1
Hours=1
Endurance=1
until [ "$IsQuit" = "YES" ]
do
# 若是週末則印出休假訊息
if [ $Week -eq 6 ] || [ $Week -eq 7 ]; then
WorkingDay="FALSE"
echo "YA! 星期 $Week 休假 ..."
fi
# while 迴圈持續工作八小時
while [ $Hours -le 8 ] && [ $Week -lt 6 ]
do
echo -ne "星期 $Week, 努力工作 $Hours...\r"
(( Hours++ ))
sleep 0.2
done
# 忍受度 +1
(( Endurance++ ))
# 工作時數歸零
Hours=0
# 又過一天
(( Week++ ))
# 過了七天,問一是否要離職
if [ $Week -gt 7 ]; then
Week=1
echo -ne "工作一週後,請問你有想辭職嗎?(輸入 YES 或按 ENTER 繼續): "
read IsQuit
fi
sleep 0.2
# 無法再忍,直接 break 脫離迴圈
if [ $Endurance -gt 23 ]; then
echo -e "\n忍受不住,直接回家 ... "
break
fi
# 唉!其實這行是為 continue 而 continue
# 遇到這行,就會從迴圈的頭開始執行
continue
echo "這行是永遠不會被執行到的,因為上面有 continue "
done
# 離開迴圈給個訊息
echo "喔喔!你辭職了~你沒工作了,快找下一份吧!!"
這個範例的最外層是一個 until 迴圈,配合這個範例這個迴圈的意思是直到(除非)辭職等於 YES (IsQuit等於YES),否則迴圈會一直的執行下去。
看完了範例程式和註解說明,直接來看結果吧!
如果有仔細看,應該不難看出其實我在範例程式中留了兩條出路,第一條是當使用者輸入 YES 時,就會離開迴圈。第二條則是,忍受度(Endurance),當忍受度超過 23 時,就會使用 break ,強制脫離迴圈了!
結果一:直接爆掉,讓忍受度超過 23 ,走 break 那條路脫離迴圈:
結果二:在第二週使用者輸入 YES ,脫離迴圈:
鐵人賽文章分享
12上一篇 與 while 相反的 until
14下一篇 可以提高if-then-else的Bash case