今回はRubyのuntil文による繰り返しを解説していきます。
until文
繰り返し構造の1つであるwhile文に対して、until文というものがあります。
until文は、条件式が”真”になるまで、繰り返し処理が実行されます。
書式は以下のようになります。
1 2 3 |
until (条件式) do #doは省略できます (繰り返し実行したい処理) end |
条件式が”真”になると、繰り返し処理は終了します。
実際にコードを書いてみましょう。
1 2 3 4 5 6 |
point = 1 until point > 4 do puts "#{point}" + "点獲得しました" point = point + 1 end puts "4点獲得したのでゲームを終了します" |
実行結果は以下のようになります。
1 2 3 4 5 |
1点獲得しました 2点獲得しました 3点獲得しました 4点獲得しました 4点獲得したのでゲームを終了します |
上記のコードでは、条件式point > 4 が”真”になるまで、 do~endまでの処理が繰り返し実行されます。
until文から抜け出した後、puts "4点獲... という処理が実行されます。
until修飾子
他の構文で使われているように、until文にもuntil修飾子があります。
書式は以下のようになります。
1 |
(繰り返し実行したい処理) until (条件式) |
実際にコードを書いてみましょう。
1 2 3 |
point = 1 point = point + 1 until point > 5 puts point |
実行結果は以下のようになります。
1 |
6 |
上記のコードでは、条件式point > 5 が”真”になるまで、point = point + 1が繰り返し実行されています。
後置until文
until文もwhile文同様に、untilを後置する書き方があります。
次のような書き方をすると、最初の一回だけ、条件式にかかわらず、繰り返したい処理を実行することができます。
1 2 3 |
begin (繰り返し実行したい処理) #最初は条件式にかかわらず実行 end until (条件式) |
実際にコードを書いてみましょう。
1 2 3 4 5 |
point = 1 begin point = point + 1 puts point end until point > 5 |
実行結果は以下のようになります。
1 2 3 4 5 |
2 3 4 5 6 |
上記のコードでは、まず初めに、begin~end間の処理が実行されています。
その後、繰り返しが行われています。