FizzBuzzという言葉遊びがあります。1から数を数えていく際に、それが3の倍数だったら「Fizz」, 5の倍数だったら「Buzz」と言う、というもの。ただし、15の倍数の時は「FizzBuzz」と言います。
例) 1, 2, Fizz, 4, Buzz, Fizz ,,,,
このFizzBuzzを再現できるメソッドを作成。いくつまでカウントするか、引数で指定できるものとします。
雛形
def fizzbuzz(max_num)
if
elsif
elsif
else
end
end
puts 'いくつまで数えますか?'
num = gets.to_i
fizzbuzz(num)
範囲を指定して繰り返し
範囲を指定して繰り返しをする場合は、範囲演算子(..)を使用。
以下のように使用します。
1
(開始する値..終了する値)
具体的には以下のように使用できます。
# 1~6までの範囲を指定して、繰り返し表示
(1..6).each do |num|
puts num
end
def fizzbuzz(max_num)
(1..max_num).each do |num|
if num % 15 == 0
puts "FizzBuzz"
elsif num % 5 == 0
puts "Buzz"
elsif num % 3 == 0
puts "Fizz"
else
puts num
end
end
end
puts 'いくつまで数えますか?'
num = gets.to_i
fizzbuzz(num)
3行目で範囲演算子..を使用して、1から入力した値までを繰り返し処理します。
4行目以下で値によって条件分けが行われます。
例えば、入力した値が15だった場合、1~15までの範囲で、条件分岐の処理が繰り返し行われます。
ターミナルの出力は、以下のように結果になります。
いくつまで数えますか?
15
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
# 15まで繰り返すので、ここで処理が終了します