if文説明
if 条件
ifで設定した条件が成立したときの処理方法
end
【問】
もしもおさいふに500円以上入っていたら
"マンガを買って帰ろう♪"
とif文で表示させるには?
おさいふは 変数wallet とし財布の中身は700円とする。
【答】
wallet = 700
if wallet >= 500
puts "マンガを買って帰ろう♪"
end
ターミナルでは
↓↓↓
マンガを買って帰ろう♪
よし!ちゃんと表示されてるな。
じゃあもしさいふに300円しかなかったらどうなるんだろう???
wallet = 300
if wallet >= 500
puts "マンガを買って帰ろう♪"
end
〈ユーザー名〉MacBook-Air:desktop 〈ユーザー名〉$
うん、そりゃそうだ。
だってお金足りないときの条件なにもしてないもん
じゃあお金が足りないときの処理を付け加えよう!
wallet = 300
if wallet >= 500
puts "マンガを買って帰ろう♪"
else
puts "おうちに帰ろう・・・"
end
おうちに帰ろう・・・
else + 条件が成立しないときの処理方法 をつけくわえることで
条件が成立しないときの処理を加えることもできる
if 条件
ifで設定した条件が成立したときの処理方法
else
条件がなにも成立しないときの処理方法
end
いやいや待ってよ!
そのままおうちに帰るのも寂しくない?
私が設定しといてなんやけど
ターミナルにめっちゃ寂しそうに表示されたわ
じゃあ300円以上あったら紅茶を買って帰ろう!
wallet = 300
if wallet >= 500
puts "マンガを買って帰ろう♪"
elsif wallet >= 300
puts "紅茶を買って帰ろう!"
else
puts "おうちに帰ろう・・・"
end
紅茶を買って帰ろう!
よし!表示された!
elsifを使うことによってさらなる分岐ができ
elsifを増やせば増やすほど条件が分岐できる。
でもそれだとちょっと見づらいので case文を使用したほうがいいかもしれない。
使用する人によるかもしれないし、コード作成する状況によるかもやけど。
●現時点での私の判断材料
if文使用 → AかBの二択で決まる条件分岐
(下記のおまけにも書きますが二択の場合は1行でコード書けます)
case文使用 → AかBかCなどの三択以上で決まる条件分岐
if 条件
ifで設定した条件が成立したときの処理方法
elsif 条件
最初のifの条件が成立せずelsifで条件が成立したときの処理方法
else
条件がなにも成立しないときの処理方法
end
おまけ 後置if(if修飾子)
処理が1行でおさまるときは後置ifを使うとコードを1行で書くことができる。
一番最初に問いを例にすると・・・
これが・・・↓↓↓
wallet = 700
if wallet >= 500
puts "マンガを買って帰ろう♪"
end
こうなる!!!
wallet = 700
puts "マンガを買って帰ろう♪" if wallet >= 500
かんたん!
おまけ unless文
unless文を使うとif文の反対バージョンになる。
wallet = 300
if wallet >= 500
puts "マンガを買って帰ろう♪"
else
puts "おうちに帰ろう・・・"
end
if文だと おうちに帰ろう・・・ が表示されるが
unless文に変更すると・・・
wallet = 300
unless wallet >= 500
puts "マンガを買って帰ろう♪"
else
puts "おうちに帰ろう・・・"
end
マンガを買って帰ろう♪
と表示されてしまう!!
この場合は unless を使用すると
お金が足りないのにマンガを買おうとしている私がいるので
if文を使用すべきなのですが
処理によっては unless の場合がいいときもあります。
要はそのときそのときの使い分けですな
ちなみに unless も同じくおまけ1で記述したように1行で書けますよ
ifの部分をunlessにするだけです。