if文とfizz_buzzメソッド

if文で条件分岐させる

if文、プログラミングに触れたことがなくてもなんとなく察しがつきそうな感じですかね。 条件によって動作を変えられる便利なやつ。

もし、条件①なら、○○しろ! 条件①じゃなかったら、✗✗しろ!みたいな感じですね。

Rubyでif文を書く時はこうなります。

if 条件①
 条件①の場合の処理
elsif 条件②
 条件②の場合の処理
else 
 それ以外(条件①でも②でもない)場合の処理
end

「elsif」を「elseif」と間違えないように気をつけます。

こんな感じで条件を決めておいて、それに沿って処理が流れるようにすることができます。

fizz_buzzメソッド

プログラミング界隈ではfizzbuzz問題というのが有名らしい。

実際はもっと難しい内容みたいなのですが、今回は以下の仕様でメソッドを作ります。

  • 3の倍数ならFizzを表示
  • 5の倍数ならBuzzを表示
  • 15の倍数ならFizzBuzzを表示
  • それ以外は数字をそのまま表示

ということで、メソッドはこのように定義します。

def fizz_buzz(num)
  if num % 15 == 0
    "Fizz Buzz"
  elsif
    num % 3 == 0
    "Fizz"
  elsif
    num % 5 == 0
    "Buzz"
  else
    num
  end
end

puts fizz_buzz(1)
puts fizz_buzz(2)
puts fizz_buzz(3)
puts fizz_buzz(4)
puts fizz_buzz(5)
puts fizz_buzz(6)
puts fizz_buzz(15)

このメソッドを作る時のポイントは最初の条件分岐で「15の倍数なら」をもってくるところです。 15は3の倍数でもあり、5の倍数でもあるので、最初の条件にもってこないと「Fizz」もしくは「Buzz」が表示されてしまいます。

このように表示されるはずです。

=> 1
=> 2
=> Fizz
=> 4
=> Buzz
=> Fizz
=> Fizz Buzz

まとめ

if文はよく使う構文なので、しっかり頭にいれていきたいです。

また条件分岐できる構文はif文以外もあるので、そちらについても学習してアウトプットしていきます。

参考:プロを目指す人のためのRuby入門

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ) | 伊藤 淳一 |本 | 通販 | Amazon