Linux のループ
需要の背景:
ループで 5 回印刷し、毎回 1 秒スリープします
実現方法
for ループ
for ループは 5 回出力し、毎回 1 秒スリープします
これは次のコードで実現できます。
for i in {
1..5}
do
echo "Printing for the $i time"
sleep 1
done
この例では、for
ループが 5 回実行され、毎回メッセージが出力され、1 秒待機します。{1..5}
1 から 5 までの数値の範囲を表します。$i
各ループで現在のループのカウンターの値が割り当てられる変数です。sleep
このコマンドは、プログラムの実行を一時停止して、指定された時間 (ここでは 1 秒) 待機します。
while ループ
コード:
#!/bin/bash
count=1
while [ $count -le 5 ]
do
echo "Printing for the $count time"
sleep 1s
count=$((count+1))
done
コードを説明すると、次のようになります。
count=1
: カウンタを 1 に初期化します。while [ $count -le 5 ]
: カウンタが 5 以下の場合、ループを実行します。echo "Printing for the $count time"
: 現在のサイクル時間を印刷します。sleep 1s
:1秒ほど待ちます。count=$((count+1))
: カウンタに 1 を加えて次のサイクルに入ります。
スクリプトを実行すると、次の出力が表示されます。
Printing for the 1 time
Printing for the 2 time
Printing for the 3 time
Printing for the 4 time
Printing for the 5 time
講堂
Linux では、for ループと while ループがよく使用される 2 つのループ構造です。どちらもコードを繰り返し実行するために使用できますが、構文と使用シナリオは異なります。
- for ループ
for ループは、コードを一定回数繰り返し実行する反復ループです。for ループの構文は次のとおりです。
for 变量 in 序列:
循环体
このうち変数はループ変数であり、シーケンス内の各要素をループ変数の値として順番に取得し、ループ本体内のコードを実行します。シーケンスは、リスト、タプル、文字列などの反復可能なオブジェクトにすることができます。
for ループの利点:
- 手動でカウントせずにシーケンス内の要素を反復処理すると便利です。
- ループ変数をループ本体で使用すると、データ処理が容易になります。
for ループの欠点:
- 一定回数だけ繰り返し実行することができ、条件に応じてループを制御することはできません。
- ループ本体内のシーケンスの要素を変更する必要がある場合、予期しない結果が生じる可能性があります。
for ループの使用シナリオ:
- リスト、タプル、文字列などのシーケンス タイプのデータを走査します。
- 一定数のループ操作を実行します。
- while ループ
while ループは、条件が true か false に応じてコード ブロックを繰り返し実行する条件付きループです。while ループの構文は次のとおりです。
while 条件:
循环体
このうち条件は式であり、式の値が True の場合はループ本体内のコードを実行し、それ以外の場合はループから抜けます。
while ループの利点:
- 状況に応じてループを制御することができ、より柔軟になります。
- ループ本体で条件を変更して、より複雑なループ ロジックを実装できます。
while ループの欠点:
- サイクル条件を手動で制御する必要があるため、無限ループなどの問題が発生しやすくなります。
- 条件が正しくないと、ループが終了しない可能性があります。
while ループの使用シナリオ:
- 条件に基づいてコードを繰り返し実行します。
- 動的制御を必要とするループ ロジックを処理します。
要約:
for ループと while ループはどちらも一般的に使用されるループ構造であり、それぞれに独自の長所と短所、および使用シナリオがあります。実際のプログラミングでは、より効率的で柔軟なコード ロジックを実現するには、特定の状況に応じて適切なループ構造を選択する必要があります。