5. 繰り返し
2015/03/24 シナジーマーケティング(株) 河野 健太朗
5.1 loop
無限ループを実行します。 脱出 を使用しなければ処理を中断できません。
loop の do は省略できません。
loop do 処理 end
# coding: utf-8 counter = 0 loop do counter += 1 puts counter break if counter == 10 end
> ruby loop_test.rb 1 2 3 4 5 6 7 8 9 10
5.2 while
条件が「真」の間、処理が繰り返し実行されます。
while 条件 [do] # 条件が真の間実行される end
do は省略可能です。
# coding: utf-8 counter = 10 while counter > 0 counter -= 1 puts counter end
> ruby while_test.rb 9 8 7 6 5 4 3 2 1 0
while修飾子
ifやunlessのように式の後ろにwhileを記述することができます。
式 while 条件
# coding: utf-8 counter = 10 counter -= 1 while counter > 0 puts counter
> ruby while_test3.rb 0
begin節を修飾した場合には、 begin節の実行後 に条件の評価が行われます。
begin # 処理 end while 条件
# coding: utf-8 counter = 0 begin counter += 1 puts counter end while counter < 10
> ruby while_test2.rb 1 2 3 4 5 6 7 8 9 10
式を修飾した場合
- 条件が先に評価され、式が実行されないことがある。
begin節を修飾した場合
- begin節が先に実行され、条件が評価されるので、最低1回はbegin節が実行される
という違いがありますので注意してください。
5.3 until
条件が「偽」の間、処理が繰り返し実行されます。
unless 条件 do # 条件が偽の間実行される end
# coding: utf-8 counter = 0 until counter > 10 counter += 1 puts counter end
> ruby until_test.rb 1 2 3 4 5 6 7 8 9 10 11
またwhileと同じように、until修飾子があります。