【发布时间】:2012-05-24 02:41:35
【问题描述】:
对于那些不知道的人,FizzBuzz 是以下问题:
编写一个程序,打印从 1 到 100 的数字。但是对于 三的倍数打印“Fizz”而不是数字和 五的倍数打印“嗡嗡声”。对于数字的倍数 三个和五个都打印“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。我该如何避免这种情况?
【问题讨论】:
-
因为它应该是
else if而不是你的第二个if语句;) -
@ThomasJungblut 不,因为那样 FizzBuzz 案子就一定行不通了。
-
@ThomasJungblut,不,他想把 Fizz 和 Buzz 连在一起,所以他故意省略了第一个 else if。
-
是的,但他抱怨它会打印 fizzX,只是说'。
标签: java if-statement fizzbuzz