コンテンツにスキップ

シンプルなFizzBuzzプログラム

FizzBuzzプログラムは、基本的なプログラミングスキルを評価するための一般的なコーディング課題です。
プログラムは、通常1から100までの数値の列を順に処理します。
各数値について、3と5で割り切れるかどうかを確認します。
3で割り切れる場合、「Fizz」と出力します。 5で割り切れる場合、「Buzz」と出力します。
3と5の両方で割り切れる場合、「FizzBuzz」と出力します。
いずれの条件も満たさない場合、その数値自体を出力します。

では、redyでFizzBuzzプログラムを書いてみましょう。

fn main() {
  for i: 1..=100 {
    if i % 15 == 0 {
      println#("FizzBuzz")
    } else if i % 3 == 0 {
      println#("Fizz")
    } else if i % 5 == 0 {
      println#("Buzz")
    } else {
      println#("{}", i)
    }
  }
}

このコードを実行すると、1から100までのFizzBuzzの出力が得られます。ここで何が起こっているのかを理解しましょう。

最初の行for i: 1..=100 { ... }は、数値i1から100まで(両端を含む)を反復するループを作成します。波括弧{ ... }内のコードは、各数値に対して実行されます。

ループ内では、条件に基づいて異なるコードブロックを実行するために使用されるif...else if...else文を使用します。

  • i % 15 == 0: この条件は、iが15で割り切れるかどうかをチェックします。%演算子は左辺を右辺で割った余りを計算するので、それが0であればiが15の倍数であると判断することができます
  • i % 3 == 0i % 5 == 0はそれぞれiが3の倍数か、5の倍数かを同様にチェックします
  • else { println#("{}", i) }: これらすべての条件が真でない場合、数字を直接コンソールに出力します

i % 15 == 0が最初に評価されることに注意してください。これが一番上に置かれているのは、15で割り切れる数字が3でも15でも割り切れるためです。もし最初にi % 3 == 0をチェックすれば、"FizzBuzz"と出力されるべきすべての数字で先に"Fizz"が出力されてしまい、これは正しいFizzBuzzプログラムと言えなくなります