FizzBuzz問題

1〜100までの数字をターミナルに出力してください。ただし、「3の倍数」のときは数字の代わりに文字列でFizzと、「5の倍数」のときはBuzz、両方の倍数である「15の倍数」のときはFizzBuzzと出力してください。という問題について独自解釈です。

def fizz_buzz(num)
 num = 1
 while  (1<=100) do
   if (num%3==0) && (num%5==0)
    puts "FizzBuzz"
  elsif num%3==0
   puts "Fizz"
  elsif num%5==0
   puts "Buzz"
  else
   puts num
  end
 num += 1
 end
end

fizz_buzz

まず変数numを定義して、100回まで繰り返すためにwhileを使って繰り返し文を書く。

 while1<=100do
 処理〜
 num +=1
 end

whileの引数は条件式が入るのですが、今回は1回から100回繰り返したいので100回まで繰り返す条件を記入します。 処理後にカウントを1増やすためnum+=1を書きます。

次にwhile文の中にif文を記入します。まず15の倍数は"FizzBuzz"と出力するというところから書きます。 書き方は(num%3==0) && (num%5==0)と書くが、これは変数numの値を3または5で割った余りが0と同じ(倍数)という感じです。 続いて同様に3の倍数のみの場合、5の倍数のみの場合の条件式を書き、最後に条件に当てはまらなければ変数numを出力する。 というif文を記入します。ちなみに15の倍数は一番上に書く事、3の倍数(または5の倍数)の下に書くと15の倍数でもFizzが出力されてしまうので注意が必要です。自分はこの順番をよく間違えてしまうので気をつけなければと思います。