Rubyのループいろいろ
PHPとほんのちょっとのJavaScriptしか使えないロプロスですが、最近Rubyはじめたんですよ、Ruby。なんか楽しいとかモテるとかいう話を聞いたんで。
で、せっかく勉強しているんだから、その記録をブログにも書いていこうかと思いまして。ってか、書いておかないとすぐ忘れちゃうんで、ほとんど自分用メモなんですけどね。
とりあえずはループから。PHPとはずいぶん違いますね。かなり簡単に書けるものもあるんですねー。このあたりが「楽しい」と言われる所以なのかしら?
while
i=1 while i<=10 puts i i += 1 end
until
i=1 until i>10 puts i i += 1 end
for
for i in 1..10 puts i end ar = [1,2,3,4,5,6,7,8,9,10] for i in ar puts i end
それぞれ、iの内容を1から10まで増やしながらループします。
whileのほうは書き方が違うだけでPHPと同じなんだけど、forの使い方が全然違いますね。
untilってのもPHPにはないんだけど、これはwhileとは逆で式が真になったらループを終了します。
あと、変数の内容を1増やすのにi++とか++iとかはやれないみたい。
times upto downto step
それぞれ、Integerクラスのメソッド
10.times do |i| puts i end
1から10までループ。なにこれ、超簡単!
5.upto(20) do |i| puts i end
20.downto(5) { |i| puts i }
それぞれ、5から20までカウントアップ、20から5までカウントダウン。
ブロックはdo〜endで囲んでも{}で囲んでもいいみたい。
10.step(100,5) { |i| puts i }
10から5づつ100(を超えない数値)までループ
配列、ハッシュのループ
ar = [1,2,4,8,16,32] ar.each do |i| puts i end
hs = {"ropross"=>"ロプロス","rodem"=>"ロデム","poseidon"=>"ポセイドン"} hs.each do |key,val| puts key,val end
PHPのforeachみたいな感じ。配列のインデックスだけ取り出すときはeach_index、ハッシュのキーだけ取り出すときはeach_keyを使います。
それから、ループを抜けるときはPHPと同じbreakなんだけど、ループの先頭に戻るときはcontinueじゃなくてnextを使います。あと、ループの条件をチェックせずに、繰り返しをやり直すredoってのもあるんだけど、使うかな?
と、まあ、こんな感じで勉強したことをちょっとずつメモしていこう。