1
0

More than 3 years have passed since last update.

【Ruby】if文の条件分岐

Last updated at Posted at 2019-11-18

if文説明

公式.rb
if 条件
 ifで設定した条件が成立したときの処理方法
end

【問】
もしもおさいふに500円以上入っていたら
"マンガを買って帰ろう♪"
とif文で表示させるには?
おさいふは 変数wallet とし財布の中身は700円とする。

【答】

if文.rb
wallet = 700
if wallet >= 500
  puts "マンガを買って帰ろう♪"
end

ターミナルでは
↓↓↓

ターミナル.
マンガを買って帰ろう♪

よし!ちゃんと表示されてるな。
じゃあもしさいふに300円しかなかったらどうなるんだろう???:thinking::thinking::thinking:

if文.rb
wallet = 300
if wallet >= 500
  puts "マンガを買って帰ろう♪"
end
ターミナル.
〈ユーザー名〉MacBook-Air:desktop 〈ユーザー名〉$ 

うん、そりゃそうだ。
だってお金足りないときの条件なにもしてないもん:sweat_smile:
じゃあお金が足りないときの処理を付け加えよう!

if文.rb
wallet = 300
if wallet >= 500
  puts "マンガを買って帰ろう♪"
else
  puts "おうちに帰ろう・・・"
end
ターミナル.
おうちに帰ろう・・・

else + 条件が成立しないときの処理方法 をつけくわえることで
条件が成立しないときの処理を加えることもできる

公式.rb
if 条件
 ifで設定した条件が成立したときの処理方法
else
  条件がなにも成立しないときの処理方法
end

いやいや待ってよ!
そのままおうちに帰るのも寂しくない?
私が設定しといてなんやけど
ターミナルにめっちゃ寂しそうに表示されたわ:scream:
じゃあ300円以上あったら紅茶を買って帰ろう!

if文.rb
wallet = 300
if wallet >= 500
  puts "マンガを買って帰ろう♪"
elsif wallet >= 300
  puts "紅茶を買って帰ろう!"
else
  puts "おうちに帰ろう・・・"
end
ターミナル.
紅茶を買って帰ろう!

よし!表示された!:thumbsup:

elsifを使うことによってさらなる分岐ができ
elsifを増やせば増やすほど条件が分岐できる。
でもそれだとちょっと見づらいので case文を使用したほうがいいかもしれない。
使用する人によるかもしれないし、コード作成する状況によるかもやけど。

●現時点での私の判断材料
 if文使用 → AかBの二択で決まる条件分岐
      (下記のおまけにも書きますが二択の場合は1行でコード書けます)

 case文使用 → AかBかCなどの三択以上で決まる条件分岐

公式.rb
if 条件
 ifで設定した条件が成立したときの処理方法
elsif 条件
  最初のifの条件が成立せずelsifで条件が成立したときの処理方法
else
  条件がなにも成立しないときの処理方法
end

おまけ 後置if(if修飾子)

処理が1行でおさまるときは後置ifを使うとコードを1行で書くことができる。
一番最初に問いを例にすると・・・
これが・・・↓↓↓

if文.rb
wallet = 700
if wallet >= 500
  puts "マンガを買って帰ろう♪"
end

こうなる!!!:laughing:

if文.rb
wallet = 700
puts "マンガを買って帰ろう♪" if wallet >= 500

かんたん!:laughing:

おまけ unless文

unless文を使うとif文の反対バージョンになる。

if文.rb
wallet = 300
if wallet >= 500
  puts "マンガを買って帰ろう♪"
else
  puts "おうちに帰ろう・・・"
end

if文だと おうちに帰ろう・・・ が表示されるが
unless文に変更すると・・・

unless文.rb
wallet = 300
unless wallet >= 500
  puts "マンガを買って帰ろう♪"
else
  puts "おうちに帰ろう・・・"
end
ターミナル.
マンガを買って帰ろう♪

と表示されてしまう!!

この場合は unless を使用すると
お金が足りないのにマンガを買おうとしている私がいるので
if文を使用すべきなのですが
処理によっては unless の場合がいいときもあります。
要はそのときそのときの使い分けですな:smiley:

ちなみに unless も同じくおまけ1で記述したように1行で書けますよ:grinning:
ifの部分をunlessにするだけです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0