我正在尝试编写一个简单的FizzBuzz程序,该程序可轻松编辑以使用不同的数字以及需要的更多数字。
当我运行该程序时,数字会正确打印,而“ Buzz”会正确打印。但是,当我打印“ Fizz”时,它会打印Fizz
,然后在下一个数字上也将打印Fizz
和数字。
例如:
1, 2, Fizz, Fizz4, Buzz.
public void Buzz(int limit){
for(int i = 1; i<limit; i++){
if(i%3 == 0){
output += "Fizz";
System.out.println(output);
}
if(i%5 == 0){
output += "Buzz";
System.out.println(output);
}else{
output += i;
System.out.println(output);
}
output = "";
}
}
答案 0 :(得分:1)
您的代码当前检查是否为i % 3 == 0
,然后检查是否为i % 5 == 0
。如果第二个if语句失败,那么除了Fizz
以外的其他数字(如果之前已打印出)。
如果您不想使用%15
,则可能会认为它类似于代码here,这样会使您的代码看起来像这样:
public void Buzz(int limit){
for(int i = 1; i<limit; i++){
boolean fizzOrBuzz = false;
if(i % 3 == 0){
fizzOrBuzz = true;
System.out.print("Fizz");
}
if(i % 5 == 0){
fizzOrBuzz = true;
System.out.print("Buzz");
}
if (fizzOrBuzz) {
System.out.println();
} else {
System.out.println(String.valueOf(i));
}
}
}
或者,此answer提供了使用%15
的版本,您可能会觉得更好。
编辑:根据@Nexevis的评论,将println
更新为print
。