我正在为学校写这个问题而且我有一些问题。我无法获得" printFizzBuzz"实际上去计算包装函数" FizzBuzz"。我需要使用循环并尝试使用FOR循环。初学者程序员在这里没有,我根本没有使用循环。任何提示或指示? ;)
说明如下。
1, Duration: 33
1, Duration: 1478051
答案 0 :(得分:1)
看看FizzBuzz功能:
public static String FizzBuzz(int number)
public static STRING 告诉您此函数返回一个字符串。
每次你写
FizzBuzz(++ⅰ);
想象这是一个类似" Fizz"
所以在你的程序中你真正写的是
for (int i = 1; i <= to; ++i){
"Fizz";
}
那看起来不太好吗?你实际上需要将这个字符串分配给某个东西,或者用它来做一些事情。例如:
for (int i = 1; i <= to; ++i){
String a = "Fizz";
System.out.println(a);
}
更好的是,这是将它打印到标准输出!但是,您的函数已经有一个 PrintStream out 参数可用于打印!
for (int i = 1; i <= to; ++i){
String a = FizzBuzz(i++);
out.println(a);
}
现在让我们来看看for循环:它创建一个从1开始的变量i( int i = 1 ),检查条件( i&lt; =到)并且如果条件满足则执行循环体。之后,它将i递增1( ++ i )。
所以循环的前3轮将如下展开:
int i = 1;
if(i<=to){
String a = FizzBuzz(i++);
out.println(a);
}
++i; //i = 3;
if(i<=to){
String a = FizzBuzz(i++);
out.println(a);
}
++i; //i = 5;
if(i<=to){
String a = FizzBuzz(i++);
out.println(a);
}
++i; //i = 7;
看起来我们这里仍有问题。为什么我3岁,5岁然后7岁? 2,4,6发生了什么?问题是,在调用FizzBuzz( FizzBuzz(i ++))时,您还将i递增1。
这是错误的,循环已经为你增加1,如果你再增加1,它将每轮增加2。
我会给你最后的解决方案。