while文を使った繰り返し処理

繰り返し処理を行う方法の一つが while 文です。 while 文は条件式が真の間、繰り返しを実行します。ここでは Ruby で while 文を使った繰り返し処理を行う方法について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 17 日更新)

while文を使った繰り返し処理

while 文を使用すると繰り返し処理を行うことができます。書式は次の通りです。

while 条件式 do
  実行する処理1
  実行する処理2
end

※「do」は省略可能です。

while のあとに条件式を記述します。この条件式が真( true )の場合は do から end までの間の処理を実行します。 end まで到達すると条件式に戻り、また条件式が真か偽かを判定し、真の場合は do から end までの間の処理を実行します。これを条件式が偽になるまで繰り返します。

次のような例で考えてみます。

num = 0
while num < 2 do
  puts("num = " + num.to_s)
end
puts("End")

while の条件式は num < 2 です。この条件式が真の間は do から end までの間の処理を実行します。実際の実行される流れは次のようになります。

 1) 変数「num」に「0」を代入
 2) 条件式を評価。変数「num」は2より小さいので繰り返しを実行
 3) 変数「num」の値を出力
 4) 「end」まで達したので再度「while」文の先頭へ移動
 5) 条件式を評価。変数「num」は2より小さいので繰り返しを実行
 6) 変数「num」の値を出力
 7) (4)から(6)を無限に繰り返し実行

while 文は条件式が真の間は繰り返し処理を実行するため、実行している処理の中で条件式が結果が変化するような処理を記述しなければなりません。先ほどの例では、条件式がいつまでも真なので無限に繰り返し処理が行われました。

では先ほどのサンプルを少し変更してみます。

num = 0
while num < 2 do
  puts("num = " + num.to_s)
  num = num + 1
end
puts("End")

今度は繰り返し処理の中で変数 num に代入されている値に 1 を加算して再度変数 num に格納しています。

実際の実行される流れは次のようになります。

 1) 変数「num」に「0」を代入
 2) 条件式を評価。変数「num」は2より小さいので繰り返しを実行
 3) 変数「num」の値を出力
 4) 変数「num」に代入されている値を1だけ加算。変数「num」は「1」が代入される
 5) 「end」まで達したので再度「while」文の先頭へ移動
 6) 条件式を評価。変数「num」は2より小さいので繰り返しを実行
 7) 変数「num」の値を出力
 8) 変数「num」に代入されている値を1だけ加算。変数「num」は「2」が代入される
 9) 「end」まで達したので再度「while」文の先頭へ移動
10) 条件式を評価。変数「num」は2より小さいくない為「while」文を終了
11) 「End」を出力

今度の例では繰り返し処理が 1 回実行されるたびに変数 num の値が変化しています。その結果、 while 文の条件式は 3 回目で偽( false )となるため while 文は終了します。

このように while 文は指定した条件が真の間は何度でも繰り返し処理を実行したい場合に使います。

サンプルコード

では簡単なプログラムで確認してみます。

# encoding: UTF-8

num = 0
puts("繰り返し開始")

while num < 5 do
  puts("num = " + num.to_s)
  num = num + 1
end

puts("繰り返し終了")

下記のように実行して下さい。

while文

-- --

Ruby で while 文を使った繰り返し処理を行う方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。