初めてのFizzBuzz問題

数値1〜100のうち、3の倍数でfizz、5の倍数でbuzz、3と5の倍数でfizzbuzzを出力し、その他の場合は数値を出力する。
今日勉強したことを参考にプログラムを作ってみた。
スマートなコードではないけど、動きはした。

num = 1
while (num <= 100)
  amari3 = 0
  amari5 = 0
  
  amari3 = num % 3
  amari5 = num % 5
  case (amari3)
  when 0
    case (amari5)
    when 0
      puts 'fizzbuzz'
    else
      puts 'fizz'
    end
  else
    case (amari5)
    when 0
      puts 'buzz'
    else
      puts num
    end
  end
  num+=1
end

先ほどのコードから不要な変数を削除した。

num = 1
while (num <= 100)
  case (num % 3)
  when 0
    case (num % 5)
    when 0
      puts 'fizzbuzz'
    else
      puts 'fizz'
    end
  else
    case (num % 5)
    when 0
      puts 'buzz'
    else
      puts num
    end
  end
  num+=1
end

さらに、if文に複数条件を指定する方法を学んだので、書きなおした。

num = 1
while (num <= 100)
  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