【Shell】while文:基本的な使い方と「continue」・「break」の使い方

■while文の使い方

while文は、指定した条件が真であり続ける限り処理を繰り返す。
なお、指定した条件(コマンド)の終了ステータスが「0」である場合を真と判定する。

▼while文の書き方(基礎)

while文の書き方を以下に示す。

while [[ 指定した条件(コマンド) ]]
do
    繰り返す処理を記載する
done

・サンプルプログラムの仕様

▼処理概要
数字を0から9までを表示する。

▼処理詳細
①変数に初期値「0」をセットする。
②while文を使用(条件:変数が10より小さい間繰り返す)
 ②ー1 変数(数字)を表示
 ②ー2 変数をインクリメント(プラス1する)

・サンプルコード

#!/bin/bash

# 初期値をセット
i=0
# 10より小さい間繰り返す
while [[ $i -lt 10 ]]
do
    # 数字を表示
    echo "$i"
    # インクリメント処理
    i=$((i + 1))
done

注意!
インクリメント処理(変数「 i 」の値を増加させる)を行わないと、無限ループしてしまう。

・実行結果

0
1
2
3
4
5
6
7
8
9

▼continueとbreakを使ったwhile文

while文についてもfor文と同様に「continue」と「break」を使用することができる。

▼for文についての参照先

・サンプルプログラムの仕様

▼処理概要
数字の「0、1、2、3、5、6」を表示する。
なお、処理は10回繰り返し、「continue」と「break」を使用すること。

▼処理詳細
①変数に初期値「0」をセットする。
②while文を使用(条件:変数が10より小さい間繰り返す)
 ②ー1 【条件分岐】変数が4の時
  ②ー1ー1 変数をインクリメント(プラス1する)
  ②ー1ー2 スキップ(continue)
 ②ー2 【条件分岐】変数が7の時
  ②ー2ー1 処理終了(break)
 ②ー3 変数(数字)を表示
 ②ー4 変数をインクリメント(プラス1する)

・サンプルコード

#!/bin/bash

# 初期値をセット
i=0
# 10より小さい間繰り返す
while [[ $i -lt 10 ]]
do
    # iが4のときは続ける(スキップ)
    if [ $i -eq 4 ]; then
        # インクリメント処理
        i=$((i + 1))
        continue
    # iが7のときは終了
    elif [ $i -eq 7 ]; then
        break
    fi
    # 数字を表示
    echo "$i"
    # インクリメント処理
    i=$((i + 1))
done

注意!
上記のような判定処理でcontinueを使用するときは、必ずインクリメント処理(変数「 i 」の値を増加させる)を行わないと、無限ループしてしまう。

・実行結果

0
1
2
3
5
6

4がスキップされ、7の時に終了(break)となる。

タイトルとURLをコピーしました