#FizzBuzz問題
- 3で割り切れる数値を引数に渡すと、Fizzと返す。
- 5で割り切れる数値を引数に渡すと、Buzzと返す。
- 15で割り切れる数値を引数に渡すと、FizzBuzzと返す。
- それ以外の数値は文字列に変えて返す。
###FizzBuzzのプログラムを段階的に考えていく。
- まず整数を文字で出力する。
- to_sメソッドを使い数字を文字にする。
qiita.rb
def fizzbuzz(i)
i.to_s
end
puts fizzbuzz(1)
#数値が出力される
- 次に3で割れる数値の時にfizzと出力するようにする。
- 割り算は%を使う。
- 値が等しい時は==を使う。(=は値を入れることなので注意)
- 条件分岐if文を使う。
- 変数や条件分岐について書いた記事も参考までに
qiita.rb
def fizzbuzz(i)
if i % 3 == 0
"fizz"
else
i.to_s
end
end
puts fizzbuzz(1)
puts fizzbuzz(3)
#1とfizzが出力される
- 次に5で割れる数値の時にbuzzと出力されるようにする。
qiita.rb
def fizzbuzz(i)
if i % 3 == 0
"fizz"
elsif i % 5 == 0
"buzz"
else
i.to_s
end
end
puts fizzbuzz(1)
puts fizzbuzz(3)
puts fizzbuzz(5)
#1とfizzとbuzzが出力される
- 最後に15で割れる時はfizzbuzzと出力されるようにする。
- 書くときに注意としては、今の流れでif文の下に15の条件を書くと、最初の3の条件で出力される(15も3で割り切れる)ため、15の条件を3より前に書く。
qiita.rb
def fizzbuzz(i)
if i % 15 == 0
"fizzbuzz"
elsif i % 3 == 0
"fizz"
elsif i % 5 == 0
"buzz"
else
i.to_s
end
end
puts fizzbuzz(1)
puts fizzbuzz(3)
puts fizzbuzz(5)
puts fizzbuzz(15)
#1とfizzとbuzzとfizzbuzzが出力される
以上になります。
「プロを目指す人のためのRuby入門」にて最初に学んだ事を書かせていただきました。