对于那些不知道的人,FizzBuzz 是以下问题:
编写一个打印从 1 到 100 的数字的程序。但是对于三的倍数打印“Fizz”而不是数字,对于五的倍数打印“Buzz”。对于同时是三和五的倍数的数字,请打印“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。我该如何避免这种情况?