知らない人のために説明すると、FizzBuzz は次の問題です。
1 から 100 までの数字を出力するプログラムを作成します。ただし、3 の倍数の場合は数字の代わりに "Fizz" と出力し、5 の倍数の場合は "Buzz" と出力します。3 と 5 の両方の倍数の場合は、"FizzBuzz" と出力します。
私が見つけたすべての FizzBuzz ソリューションは、独創性を高めるために作成されたクレイジーで難解なソリューション、または基本的な if-else チェーンのいずれかです。
for(int i = 1; i <= 100; i++) {
if(i % 3 == 0 && i % 5 == 0) {
System.out.println("FizzBuzz");
} else if (i % 3 == 0) {
System.out.println("Fizz");
} else if (i % 5 == 0) {
System.out.println("Buzz");
} else {
System.out.println(i);
}
}
「FizzBuzz」ifステートメントを取り除くことを目的とした簡単なソリューションを探しています。私はこれを念頭に置いています:
for(int i = 1; i <= 100; i++) {
if (i % 3 == 0)
System.out.print("Fizz");
if (i % 5 == 0)
System.out.println("Buzz")
else
System.out.println(i);
}
しかし、これはうまくいきません。Fizz と Buzz の両方の if を入力して FizzBuzz を出力できると思いますが、たとえば数値が 3 の場合、Fizz3 が出力されます。どうすればこれを回避できますか?