Ruby超入門 2周目 CHAPTER 4−4 配列を繰り返し処理する

f:id:kkouji0224:20191017110900p:plain

 

『ゼロからわかる Ruby 超入門 (かんたんIT基礎講座) 』


github.com

 ※上の画像はRuby超入門に出てくる配列オブジェクトさん

べこ🐄 (@becolomochi) | Twitterさんのイラストでgithubで公開してくれてるんだよ!

 

こんばんはkoujiです。寒い。寒いんだよ。Fuck金木犀!寂しい気持ちになるんだよ!

 

ということで、今日は前回の記事に入れれなかった「配列の繰り返し処理」を振り返っていこうと思います。繰り返しの部分だけなのでサクッと短くいけるはず。

 

drinks = ["コーラ""ファンタ""メロンソーダ"]
drinks.each do |drink|
    puts drink
end

 

eachメソッドってやつですね!doからendまでがブロックになってて、ここに繰り返したい処理を書いてるのね。ふむふむ。|drink|のdrinkは変数。変数なので名前は何でも良いんだけど、複数形drinksの要素を一つづつ入れていく変数だから単数形のdrinkにしておくのが自然な感じだよね。で、||これはパイプって名前らしい。なんでパイプなのかは不明だ。

 

流れとしては、配列drinksの要素をeachメソッドで変数drinkに代入して、putsメソッドで表示してる。で、配列の要素がなくなるまで繰り返して次の要素がなくなったら終わり。そんな感じ。

 

繰り返しを途中で終わらせるbreak

 

drinks = ["コーラ""ファンタ""メロンソーダ"]
drinks.each do |drink|
    break if drink == "メロンソーダ"
    puts drink
end

 

これはbreakがif == "メロンソーダ"なのでdrinkに代入されたものがメロンソーダと比較してtrueだったら実行されないって感じかな。

 

drinks = ["コーラ""ファンタ""メロンソーダ"]
drinks.each do |drink|
    break if drink
    puts drink
end
puts "へぇー。"

 

ちなみにbreak if drinkにしてみたらputsまで即飛ぶね。

なるほど。面白い。へぇーだね。

 

次は繰り返しの次の回に進む

 

drinks = ["コーラ""ファンタ""メロンソーダ"]
drinks.each do |drink|
    next if drink == "ファンタ" 
    puts drink
end
puts "へぇー。"

 

これはbreakと違ってファンタだけ飛ばすって感じだね。変数drinkに代入されてるものを、文字列オブジェクトの"ファンタ"と比較してtrueだったらって感じだね。

 

次は範囲を指定して繰り返す

 

(0..50).each do |x|
   next if x.odd?
    puts x
end

 

まずこれ絶対1万とかにしてやるよね!間違いなくやるよね!

この0..50はRangeオブジェクトって呼ばれてるみたい。このRangeオブジェクトにeachメソッドを呼び出すと、上のコードだと0から50を変数xに代入して繰り返してくれるんだね。ちなみにさっきのnextをつかってx.odd?なのでxが奇数の時はtrueが返ってくるのでxが奇数だと次に飛ぶようにしてみたよ!こんなに簡単に書けるんだね。ビックリ!

 

ってことでCHAPTER 4はここまでっ!

 

基本中の基本でもこんなに面白いので、どんどん面白くなる気しかいないねっ!

ってことで今日はこの辺で。アディオス。