今回はRubyのwhile文による繰り返しを解説していきます。
while文
while文は最もシンプルな繰り返し構造です。
while文の基本的な書式は以下のようになります。
1 2 3 |
while (条件式) do #doは省略できます (繰り返し実行したい処理) end |
まずは条件式が評価されます。条件式が”真”だった場合、do以下の処理が実行されます。
doは省略することができます。
実際にコードを書いてみましょう。
1 2 3 4 |
point = 1 while point < 5 puts "#{point}" + "点獲得しました" end |
変数pointには1という値がはいっています。
条件式point < 5は”真”であるため、その後に続く処理が繰り返し実行されます。
しかしこのままでは、無限にループしてしまいます。
では少しコードを変更してみましょう。
1 2 3 4 5 6 7 |
point = 1 while point < 5 puts "#{point}" + "点獲得しました" point = point + 1 end puts "4点獲得したのでゲームを終了します" |
このように変更すると実行結果は以下のようになります。
1 2 3 4 5 |
1点獲得しました 2点獲得しました 3点獲得しました 4点獲得しました 4点獲得したのでゲームを終了します |
一度ループするたびにpointが1ずつ増えるコードを書き加えました。
(point = point + 1)
このコードを加える事で、pointが5になった時点でループが終了します。
条件式さえあっていればwhile文中の繰り返し処理は実行されてしまうため、途中でループから抜け出す処理を忘れないようにしましょう。
ループから抜け出す脱出構文もあります。そちらも是非活用してみてください。
while修飾子
while文もif文と同様に、修飾子を使うことができます。
基本的な書式は以下のようになります。
1 |
(繰り返し実行したい処理) while (条件式) |
実際にコードを書いてみましょう。
1 2 |
point = 1 point = point + 1 while point < 5 |
上記のコードは、pointが5になるまで繰り返されます。
後置while文
次のような書き方をすると、最初の1回だけは条件式にかかわらず、繰り返したい処理が実行できます。
1 2 3 |
begin (繰り返し実行したい処理) #最初は条件式にかかわらず実行 end while (条件式) |
実際にコードを書いてみましょう。
1 2 3 4 5 |
point = 1 begin point = point + 1 puts point end while point < 5 |
実行結果は以下のようになります。
1 2 3 4 |
2 3 4 5 |
上記のコードでは、まずはじめに、point = point + 1の処理を実行しています。
その処理が実行されたあと繰り返しが実行されるため、このような結果になります。