99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

4.3.3 while條件循環(huán)語句

2023-05-11 14:58 更新

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

圖4-21 while循環(huán)語句的語法格式

接下來結合使用多分支的if條件測試語句與while條件循環(huán)語句,編寫一個用來猜測數(shù)值大小的腳本Guess.sh。該腳本使用$RANDOM變量來調取出一個隨機的數(shù)值(范圍為0~32767),將這個隨機數(shù)對1000進行取余操作,并使用expr命令取得其結果,再用這個數(shù)值與用戶通過read命令輸入的數(shù)值進行比較判斷。這個判斷語句分為三種情況,分別是判斷用戶輸入的數(shù)值是等于、大于還是小于使用expr命令取得的數(shù)值。當前,現(xiàn)在這些內容不是重點,我們當前要關注的是while條件循環(huán)語句中的條件測試始終為true,因此判斷語句會無限執(zhí)行下去,直到用戶輸入的數(shù)值等于expr命令取得的數(shù)值后,這兩者相等之后才運行exit 0命令,終止腳本的執(zhí)行。

    [root@linuxprobe ~]# vim Guess.sh
    #!/bin/bash
    PRICE=$(expr $RANDOM % 1000)
    TIMES=0
    echo "商品實際價格為0-999之間,猜猜看是多少?"
    while true
    do
    read -p "請輸入您猜測的價格數(shù)目:" INT
    let TIMES++
    if [ $INT -eq $PRICE ] ; then
    echo "恭喜您答對了,實際價格是 $PRICE"
    echo "您總共猜測了 $TIMES 次"
    exit 0
    elif [ $INT -gt $PRICE ] ; then
    echo "太高了!"
    else
    echo "太低了!"
    fi
    done

在這個Guess.sh腳本中,我們添加了一些交互式的信息,從而使得用戶與系統(tǒng)的互動性得以增強。而且每當循環(huán)到let TIMES++命令時都會讓TIMES變量內的數(shù)值加1,用來統(tǒng)計循環(huán)總計執(zhí)行了多少次。這可以讓用戶得知總共猜測了多少次之后,才猜對價格。

    [root@linuxprobe ~]# bash Guess.sh
    商品實際價格為0-999之間,猜猜看是多少?
    請輸入您猜測的價格數(shù)目:500
    太低了!
    請輸入您猜測的價格數(shù)目:800
    太高了!
    請輸入您猜測的價格數(shù)目:650
    太低了!
    請輸入您猜測的價格數(shù)目:720
    太高了!
    請輸入您猜測的價格數(shù)目:690
    太低了!
    請輸入您猜測的價格數(shù)目:700
    太高了!
    請輸入您猜測的價格數(shù)目:695
    太高了!
    請輸入您猜測的價格數(shù)目:692
    太高了!
    請輸入您猜測的價格數(shù)目:691
    恭喜您答對了,實際價格是 691
    您總共猜測了 9 次
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號