1
0

More than 3 years have passed since last update.

FizzBuzz問題の解説

Last updated at Posted at 2021-01-15

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のように置き換える事も可能。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0