新聞中心
while條件循環(huán)語句是一種讓腳本根據(jù)某些條件來重復(fù)執(zhí)行命令的語句,它的循環(huán)結(jié)構(gòu)往往在執(zhí)行前并不確定最終執(zhí)行的次數(shù),完全不同于for循環(huán)語句中有目標(biāo)、有范圍的使用場景。while循環(huán)語句通過判斷條件測試的真假來決定是否繼續(xù)執(zhí)行命令,若條件為真就繼續(xù)執(zhí)行,為假就結(jié)束循環(huán)。while語句的語法格式如圖4-21所示。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了山南免費(fèi)建站歡迎大家使用!
圖4-21 while循環(huán)語句的語法格式
接下來結(jié)合使用多分支的if條件測試語句與while條件循環(huán)語句,編寫一個(gè)用來猜測數(shù)值大小的腳本Guess.sh。該腳本使用$RANDOM變量來調(diào)取出一個(gè)隨機(jī)的數(shù)值(范圍為0~32767),將這個(gè)隨機(jī)數(shù)對(duì)1000進(jìn)行取余操作,并使用expr命令取得其結(jié)果,再用這個(gè)數(shù)值與用戶通過read命令輸入的數(shù)值進(jìn)行比較判斷。這個(gè)判斷語句分為三種情況,分別是判斷用戶輸入的數(shù)值是等于、大于還是小于使用expr命令取得的數(shù)值。當(dāng)前,現(xiàn)在這些內(nèi)容不是重點(diǎn),我們當(dāng)前要關(guān)注的是while條件循環(huán)語句中的條件測試始終為true,因此判斷語句會(huì)無限執(zhí)行下去,直到用戶輸入的數(shù)值等于expr命令取得的數(shù)值后,這兩者相等之后才運(yùn)行exit 0命令,終止腳本的執(zhí)行。
[root@linuxprobe ~]# vim Guess.sh
#!/bin/bash
PRICE=$(expr $RANDOM % 1000)
TIMES=0
echo "商品實(shí)際價(jià)格為0-999之間,猜猜看是多少?"
while true
do
read -p "請(qǐng)輸入您猜測的價(jià)格數(shù)目:" INT
let TIMES++
if [ $INT -eq $PRICE ] ; then
echo "恭喜您答對(duì)了,實(shí)際價(jià)格是 $PRICE"
echo "您總共猜測了 $TIMES 次"
exit 0
elif [ $INT -gt $PRICE ] ; then
echo "太高了!"
else
echo "太低了!"
fi
done
在這個(gè)Guess.sh腳本中,我們添加了一些交互式的信息,從而使得用戶與系統(tǒng)的互動(dòng)性得以增強(qiáng)。而且每當(dāng)循環(huán)到let TIMES++命令時(shí)都會(huì)讓TIMES變量內(nèi)的數(shù)值加1,用來統(tǒng)計(jì)循環(huán)總計(jì)執(zhí)行了多少次。這可以讓用戶得知總共猜測了多少次之后,才猜對(duì)價(jià)格。
[root@linuxprobe ~]# bash Guess.sh
商品實(shí)際價(jià)格為0-999之間,猜猜看是多少?
請(qǐng)輸入您猜測的價(jià)格數(shù)目:500
太低了!
請(qǐng)輸入您猜測的價(jià)格數(shù)目:800
太高了!
請(qǐng)輸入您猜測的價(jià)格數(shù)目:650
太低了!
請(qǐng)輸入您猜測的價(jià)格數(shù)目:720
太高了!
請(qǐng)輸入您猜測的價(jià)格數(shù)目:690
太低了!
請(qǐng)輸入您猜測的價(jià)格數(shù)目:700
太高了!
請(qǐng)輸入您猜測的價(jià)格數(shù)目:695
太高了!
請(qǐng)輸入您猜測的價(jià)格數(shù)目:692
太高了!
請(qǐng)輸入您猜測的價(jià)格數(shù)目:691
恭喜您答對(duì)了,實(shí)際價(jià)格是 691
您總共猜測了 9 次 分享名稱:創(chuàng)新互聯(lián)linux教程:4.3.3while條件循環(huán)語句
當(dāng)前網(wǎng)址:http://m.5511xx.com/article/cdogcde.html


咨詢
建站咨詢
