iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 25
0

前言

今天我們要介紹 while 這個語法,昨天的 for 可以解決適合迭代的問題,而今天這個 while 適合解決重複邏輯的問題

重複邏輯

重複邏輯就是當一個判斷式回傳 True 之後,這個判斷式底下的程式碼就會開始工作,工作完之後再回到原本的判斷式等待指令,如果還是 True,就繼續工作,如果是 False ,就結束這個輪迴。

語法

while [ 判斷式 ]
do
   程式碼
done

寫一個猜數字腳本

  1 #!/bin/bash
  2 max_num=0;count=0;guess=0 
  3 answer=$(( $RANDOM % $max_num + 1 ))
  4 
  5 
  6 echo "請輸入 1 到 $max_num (含)的數字~"
  7 
  8 while [ "$guess" != $answer ] ; do
  9   echo -n "輸入:" ; read guess
 10   if [ "$guess" -lt $answer ] ; then
 11     echo "太小了!"
 12   elif [ "$guess" -gt $answer ] ; then
 13     echo "太大了!"
 14   fi
 15   count=$(( $guesses + 1 ))
 16 done
 17 
 18 echo "答對了!正確答案就是 $answer"

輸入

注意 RAMDOM 是一個隨機值,因此除以 max_num 之後,answer 的值會介於 1 到 max_num

重複邏輯

下面的 while 區塊就是當使用者猜的數字不等於答案,就會進去下面的程式碼區塊,就會根據你的猜測顯示對應的提示。

計算次數

然後 count 會記錄你的猜測次數,每猜測一次 count 就會加上 1,最後答對會顯示訊息。


上一篇
[Day 24] 自己的 Shell Script 自己寫 - for 迴圈
下一篇
[Day 26] 自己的 Shell Script 自己寫 - 函式篇
系列文
30 天不間斷-資工隨筆大雜燴30

尚未有邦友留言

立即登入留言