whileは、条件式が真の間、処理を繰り返すために使います。sample11.rbに、1から10までカウントアップする例を示します。ループ中で変数「i」を1ずつ増やしながら、「i」が10に達したらループを脱出します。
i = 1 while i <= 10 puts i i += 1 end
$ ruby sample11.rb 1 2 3 4 5 6 7 8 9 10
ifやunlessと同様、後置することもできます。sample12.rbは後置whileを利用して変数「i」をカウントアップする例です。「i」が10の場合にも「i += 1」が実行されるため、結果として11が出力されています。
i = 1 i += 1 while i <= 10 puts i
$ ruby sample12.rb 11
breakを使うとループを脱出できます。恣意的な例ですが、sample11.rbをbreakを使って書き換えた例をsample13.rbに示します。whileの条件式にtrueを与えて無限ループを作り、breakとifを用いてループを脱出しています。
i = 1 while true puts i i += 1 break if i > 10 end
$ ruby sample13.rb 1 2 3 4 5 6 7 8 9 10
nextを使うと、以降の処理をスキップして次のループに移ることができます。sample14.rbは、1から10まで、3の倍数以外の値を出力しながらカウントアップする例です。
i = 0 while i < 10 i += 1 next if i % 3 == 0 puts i end
$ ruby sample14.rb 1 2 4 5 7 8 10
なおbreakやnextは、以降で説明するuntilやforでも用いることができます。
untilはwhileとは逆に、条件式が偽の間、繰り返し処理を行うために使います。whileと同様に後置することも可能です。sample15.rbは、sample11.rbをuntilを用いて書き換えたものです。
i = 1 until i > 10 puts i i += 1 end
$ ruby sample15.rb 1 2 3 4 5 6 7 8 9 10
Copyright © ITmedia, Inc. All Rights Reserved.