🤔
【初心者】FizzBuzzのいろんなコードパターンを考える
こんにちは!現在エンジニアを目指して勉強している猿です!
勉強するものが絶対通るであろうFizzBuzzのプログラミングコード
今回ははどれだけいろんなパターンで書けるか挑戦してみました!
まず一つ目
おそらく一番オーソドックスではないかと思われるifを使ってかいてみました
numbers = [*1..20]
numbers.each do |number|
if number % 15 == 0
puts "FizzBuzz"
elsif number % 5 == 0
puts "Buzz"
elsif number % 3 == 0
puts "Fizz"
else
puts number
end
end
2つ目
moduloメソッドとcaseを使って書いてみました
numbers = [*1..20]
numbers.each do |number|
case
when number.modulo(15) == 0
puts "FizzBuzz"
when number.modulo(5) == 0
puts "Buzz"
when number.modulo(3) == 0
puts "Fizz"
else
puts number
end
end
どれだけ思いつくか挑戦してみたものの、上の二つって考え方ていっしょよな〜と。。。
私の力では限界を感じたため、現役エンジニアの方になにか別の書き方ってないですか??ときいてみました。
ここで返ってきたコードがこちら
3つ目
numbers = [*1..20]
numbers.each do |number|
msg = ""
msg += "Fizz" if (number % 3).zero?
msg += "Buzz" if (number % 5).zero?
msg = number if msg.empty?
puts msg
end
うっわーーーーーー!!!!空の変数に、判定が通った時に文字いれていくのすごすぎる。。スマートすぎてびびりました。ぜひ名前ここでかいていいですかってきいたのですが、お恥ずかしいとのことでした。回答してくださり、ありがとうございます。
同じ結果でも、いろんな過程があっておもしろいな〜〜と思えたFizzBuzz問題でした
Discussion