■文の使い方
until文は、指定した条件が偽であり続ける限り処理を繰り返す。
※参考
while文は指定した条件が真であり続ける限り処理を繰り返す処理であり、until文とは真偽が逆であることに注意!!
▼until文の書き方(基礎)
until文の書き方を以下に示す。
until [[ 指定した条件(コマンド) ]]
do
繰り返す処理を記載する
done
・サンプルプログラムの仕様
▼処理概要
数字を0から9までを表示する。
▼処理詳細
①変数に初期値「0」をセットする。
②until文を使用(条件:変数が9より大きくない間繰り返す)
②ー1 変数(数字)を表示
②ー2 変数をインクリメント(プラス1する)
・サンプルコード
#!/bin/bash
# 初期値をセット
j=0
# 9より大きくない間繰り返す
until [[ $j -gt 9 ]]
do
# 数字を表示
echo "$j"
# インクリメント処理
j=$((j + 1))
done
注意!!
インクリメント処理(変数「 j 」の値を増加させる)を行わないと、無限ループしてしまう。
・実行結果
0
1
2
3
4
5
6
7
8
9
▼continueとbreakを使ったuntil文
until文についてもfor文と同様に「continue」と「break」を使用することができる。
▼for文についての参照先
・サンプルプログラムの仕様
▼処理概要
数字の「0、1、2、3、5、6」を表示する。
なお、処理は10回繰り返し、「continue」と「break」を使用すること。
▼処理詳細
①変数に初期値「0」をセットする。
②until文を使用(条件:変数が9より小さい間繰り返す)
②ー1 【条件分岐】変数が4の時
②ー1ー1 変数をインクリメント(プラス1する)
②ー1ー2 スキップ(continue)
②ー2 【条件分岐】変数が7の時
②ー2ー1 処理終了(break)
②ー3 変数(数字)を表示
②ー4 変数をインクリメント(プラス1する)
・サンプルコード
#!/bin/bash
# 初期値をセット
j=0
# 9より大きくない間繰り返す
until [[ $j -gt 9 ]]
do
# iが4のときは続ける(スキップ)
if [ $j -eq 4 ]; then
# インクリメント処理
j=$((j + 1))
continue
# iが7のときは終了
elif [ $j -eq 7 ]; then
break
fi
# 数字を表示
echo "$j"
# インクリメント処理
j=$((j + 1))
done
注意!
上記のような判定処理でcontinueを使用するときは、必ずインクリメント処理(変数「 j 」の値を増加させる)を行わないと、無限ループしてしまう。
・実行結果
0
1
2
3
5
6
4がスキップされ、7の時に終了(break)となる。
コメント