Shell while迴圈詳解

2022-07-21 13:18:19 字數 1550 閱讀 7413

while 迴圈是 shell 指令碼中最簡單的一種迴圈,當條件滿足時,while 重複地執行一組語句,當條件不滿足時,就退出 while 迴圈。

shell while 迴圈的用法如下:

while condition

dostatements

done

condition表示判斷條件,statements表示要執行的語句(可以只有一條,也可以有多條),dodone都是 shell 中的關鍵字。

while 迴圈的執行流程為:

注意,在 while 迴圈體中必須有相應的語句使得 condition 越來越趨近於「不成立」,只有這樣才能最終退出迴圈,否則 while 就成了死迴圈,會一直執行下去,永無休止。

while 語句和 if else 語句中的 condition 用法都是一樣的,你可以使用 test 或 命令,也可以使用 (()) 或 ,遺忘的讀者請猛擊下面的鏈結回顧:

【例項1】計算從 1 加到 100 的和。

#!/bin/bash

i=1sum=0

while ((i <= 100))

do((sum += i))

((i++))

done

echo "the sum is: $sum"

執行結果:

the sum is: 5050

在 while 迴圈中,只要判斷條件成立,迴圈就會執行。對於這段**,只要變數 i 的值小於等於 100,迴圈就會繼續。每次迴圈給變數 sum 加上變數 i 的值,然後再給變數 i 加 1,直到變數 i 的值大於 100,迴圈才會停止。

i++語句使得 i 的值逐步增大,讓判斷條件越來越趨近於「不成立」,最終退出迴圈。

對上面的例子進行改進,計算從 m 加到 n 的值。

#!/bin/bash

read m

read n

sum=0

while ((m <= n))

do((sum += m))

((m++))

done

echo "the sum is: $sum"

執行結果:

1↙100↙

the sum is: 5050

【例項2】實現乙個簡單的加法計算器,使用者每行輸入乙個數字,計算所有數字的和。

#!/bin/bash

sum=0

echo "請輸入您要計算的數字,按 ctrl+d 組合鍵結束讀取"

while read n

do((sum += n))

done

echo "the sum is: $sum"

執行結果:

12↙33↙

454↙

6767↙

1↙2↙

the sum is: 7269

在終端中讀取資料,可以等價為在檔案中讀取資料,按下 ctrl+d 組合鍵表示讀取到檔案流的末尾,此時 read 就會讀取失敗,得到乙個非 0 值的退出狀態,從而導致判斷條件不成立,結束迴圈。

for迴圈詳解

1 for語句,也叫迴圈語句,也稱之為for迴圈。2 for語句也是乙個結構複雜的語句,雖然簡化 如用不熟也會適得其反。3 for語句由三個部分組成 定義初始變數 迴圈條件 變化變數 for 定義初始變數 迴圈條件 變數變化 for var i 0,sum 0 i 100 console.log s...

for迴圈詳解

js一共有三種迴圈語句,今天說一說for迴圈 for迴圈一共三個值,寫法是for 定義初始變數 迴圈條件 變數變化 示例 從上面的例子中,您可以看到 statement 1 在迴圈開始之前設定變數 var i 0 statement 2 定義迴圈執行的條件 i 必須小於 j statement 3 ...

for迴圈詳解

舉例如圖下 首先for迴圈相比其他迴圈可以把條件寫在一起如圖所示 這變數,條件,變化必不可少其他迴圈也是 但是for迴圈有乙個點它在初始變數的時候,進入迴圈之前就已經執行了一次 條件是每次進入迴圈之前都會執行並且判斷 還有當continue遇到for時如圖所示 當i 5時候但是並不會進入死迴圈,因為...