FizzBuzz問題 解説
FizzBuzz問題に使用されている表現に関してもまとめてみました。
ステップ1
1〜100までの数字をターミナルに出力ステップ2
「3の倍数」のときは数字の代わりに文字列でFizz
「5の倍数」のときも同様にBuzzステップ3
3と5の倍数である「15の倍数」のときはFizzBuzzと出力
プログラムのひな形
雛形
def fizz_buzz
# 処理の中身
end
fizz_buzz
1〜100までの数字をターミナルに出力するためのプログラム
ステップ1
1〜100までの数字をターミナルに出力
1〜100までの数字をターミナルに出力する
def fizz_buzz
num = 1
# num = 1から始まる処理の中身
while num <= 100 do # 真偽値がtrueである限りは以下の処理が続く
puts num # 出力される数値
num = num + 1 # 真偽値に +1
end
# 処理の中身
end
fizz_buzz
「3の倍数」のときは文字列でFizz、「5の倍数」のときはBuzzと出力する
ステップ2
「3の倍数」のときは数字の代わりに文字列でFizz
「5の倍数」のときも同様にBuzz
「3の倍数」のときは文字列でFizz、「5の倍数」のときはBuzzと出力
def fizz_buzz
num = 1
# num = 1から始まる処理の中身
while num <= 100 do # 真偽値がtrueである限りは以下の処理が続く
if num % 3 == 0 # 3で割った余りが0の時
puts "Fizz"
elsif num % 5 == 0 # 5で割った余りが0の時
puts "Buzz"
else # それ以外のとき
puts num # 上記の3の倍数・5の倍数に当たらない数値はそのまま出力
end
num = num + 1 # 真偽値に +1
end
# 処理の中身
end
fizz_buzz
「15の倍数(3と5の倍数)」の時についての条件式を追加する
ステップ3
3と5の倍数である「15の倍数」のときはFizzBuzzと出力
「15の倍数(3と5の倍数)」の時の条件式を追加
def fizz_buzz
num = 1
# num = 1から始まる処理の中身
while (num <= 100) do # 真偽値がtrueである限りは以下の処理が続く
if num % 15 == 0 # 15の倍数のとき
puts "FizzBuzz"
elsif (num % 3) == 0 # 3で割った余りが0の時
puts "Fizz"
elsif (num % 5) == 0 # 5で割った余りが0の時
puts "Buzz"
else # それ以外のとき
puts num #上記の3・5・15の倍数に当たらない数値はそのまま出力
end
num = num + 1 # 真偽値に +1
end
# 処理の中身
end
fizz_buzz
注意点
下に追加してしまうと上記の「3の倍数であるか」または「5の倍数であるか」という条件式が真になり、FizzまたはBuzzと表示されてしまう。
以上の点からif文の最初に「15の倍数」のときはFizzBuzzと出力する条件を追加。
- 別解 「15の倍数であるとき」の条件式
- 上記で取り上げたのは
num % 15 == 0
-
num % 3 == 0 && num % 5 == 0
のように置き換える事も可能。
- 上記で取り上げたのは