roy > naoya > 基礎プログラミングI·情報検索 > (4)制御構造[2]> 補足
while-endでは、whileの横に書かれた条件を満たす間は繰り返し処理を実行するが、until-endではuntilの横に書かれた条件を満たしていない場合に処理を繰り返し実行する。
#!/usr/koeki/bin/ruby sum = 0 i = 1 until sum >= 20 sum += i i += 1 end printf ("sumの値は最終的に%dになりました\n",sum)
上記の例では、untilの横に記載された条件はsum >= 20である。つまり「sumが20以上である」という条件を満たさない場合はその下の処理を繰り返し実施することになる。言い換えれば「sumが20をこえるまで」処理を繰り返すということになる。これはwhile-endを使用して書くことも可能である。while-endを用いて書き直した例を以下に示す。
#!/usr/koeki/bin/ruby
sum = 0
i = 1
while sum < 20
sum += i
i += 1
end
printf ("sumの値は最終的に%dになりました\n",sum)
whileの行1行を変更するだけで同じ結果になる。
単純に一定回数繰り返す場合に用いる。以下のどちらの方法でもよい。
#!/usr/koeki/bin/ruby 4.times { print "Hello\n" }
#!/usr/koeki/bin/ruby 6.times do print "Hello\n" end
仮に下のプログラムをtimes.rbという名称で保存し実行すると、以下のようにHelloが6回表示される。。
irsv{naoya}% ruby times.rb[Return] Hello Hello Hello Hello Hello Hello