Ruby超入門 2周目 CHAPTER 3 3-3 「条件を満たさないときにも処理する」 まで

f:id:kkouji0224:20191015093851p:plain

 

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


github.com

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

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

 

今日はCHAPTER 3 3-3 「条件を満たさないときにも処理する」までの振り返りを書きまーす!

 

まずは比較メソッドから!

 

puts 1 < 2

puts 1 > 2

 

これtrueとfalseになりますよね。これも「ほほー…」と思ったことがあるので書いていこう。不等号が成り立つならtrueを返す。成り立たないならfalseを返す。この「返す」ってのは「実行結果に置き換える」って意味。置き換えられた結果がputsメソッドで表示されてるってことなんだね。ふむふむ。ちなみにtrueもfalseもオブジェクトさん

 

比較メソッドでもこんなに面白いってのは面白い!!

 

例えば…

 

wallet = 500

puts wallet >= 300

 

財布の中に500円ぶっ込んだ。財布の中が300円以上入っていたらなのでtrueを返すみたいな感じだね。

 

次は等しいかどうかを判断する比較メソッド

puts 1 == 2

puts 2 == 2

puts 2 == 1 + 1

 

とか

 

puts 1 != 2

puts 2 != 2

 

!= は≠に相当する。今まで「等しくない」って感じで認識してて、!=がでてくると等しくないって頭の中で変換かましてややこしくなってたんだけど、ノットイコールって考えるとスッキリしちゃった。あーなるほどね。!はノットイコールの斜めの線みたいなものだなって。面白いねー。

 

で、== とか != は数値オブジェクトだけじゃなくて文字列オブジェクトの比較もできる。

 

puts "kouji" == "kouji"  #=> true

puts "kouji" != "kouji"  #=> false

 

末尾に?がつくメソッド

puts 2.even? 

こんな感じの。慣習的に末尾に?がつくメソッドはtrueかfalseを返すことが多いらしい。ちなみに.even?は偶数かどうかを判断してtrueかfalseを返すメソッド。

 

で、準備が整いましたよってことでifです。

 

wallet = 500

if wallet >= 300

  puts "コンビニでアイスを買っていこう!"

end

 

if wallet >= 300が条件を満たしていたらtrueを返してputsが実行されるって感じだね。面白いなーと思ったのが、後置ifってやつね。うえのやつを一行で書ける。

wallet = 500

puts "コンビニでアイスを買っていこう!" if wallet >= 300

 

こういうところは1周目で読み飛ばしてたので凄く面白い。「へー」の連続である。

 

さーて次はunlessさんですね。

unlessさんは条件を満たさないときに処理を実行してくれる。

 

x = 200

unless x == 100

  puts "100ではありません"

end

 

これは実行されるね。

xに200が代入されてるので100と等しくないからputsが実行される。

 

面白いなーって思ったのがこれ。

 

x = false
unless x
  puts "unless: x は false です "
end
if !x
  puts "if: x は false です "
end

 

xにfalseが代入されてるからunlessさんはputsを実行して、ifさんはfalseが代入されてるxを!で反転してtrueなのでputsを実行する。unlessさんとか!で反転してtrueとかも面白いし、xにfalseを代入ってのが「へー面白い!」って感じ。これって文字や数字を代入してるって考えるとあれなんだけど、オブジェクトを代入してるってことだからかな。trueもfalseもオブジェクトだもんね。面白いねー!

 

最後にelseとelsif

 

season = " 夏 "
if season == " 春 "
  puts " アイスを買っていこう! "
elsif season == " 夏 "
  puts " かき氷買ってこう! "
else
  puts " あんまん買ってこう! "
end

 

で、面白いなと思ったのが、上のプログラムを違う書き方できるんだなっての。

 

season = " 夏 "
if season == " 春 "
  puts " アイスを買っていこう! "
else
  if season == " 夏 "
    puts " かき氷買ってこう! "
  else
    puts " あんまん買ってこう! "
  end
end

 

elseでifとさらにelseみたいな書き方できるんだなって。いやーちゃんと読んで進めるとマジで面白いね。ちなみに今回はここまでなんだけど、これcaseとか使うと読みやすくかけるみたい。

 

うーんプログラミングってそれ自体としても面白いね。

プログラミングっていうかRubyでこういう本を書いてくれる人がいるRubyコミュニティが素晴らしいのかな。とにかく2周目楽しいっす!ありがとうございます!

 

ということで続きは明日!書けるかな…!