さてこのコード、当っていそうで何かが間違っています。それはなんでしょうか?
def fizz_buzz
num = 0
while (num <= 100) do
num = num + 1
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
end
end
正解はここ!numの位置です!
def fizz_buzz
num = 0
while (num < 100) do
num = num + 1
if (num % 3 == 0) && (num % 5 == 0)
ココの何が間違っているでしょうか?
では、実際に最初のコードを追ってみてください。すると・・・
あれ??なんかずれてるぞ??
ということに気づくはずです。
せっかくnumの値を0と定義しているのに、while文のすぐそばでnum = num + 1とやってしまったら、if文の中が0ではなく1で実行されちゃうんですねー、これが間違いの正解です。
ですので正しくはこうなります。
def fizz_buzz
num = 0
while (num <= 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 = num + 1
end
end
いやー、ほんのちょっと順番を間違えるだけですごいエラーになっちゃうんですね〜
いいか!順番は死ぬほど大事だぞ!
~おわり