gpt4 book ai didi

java - 如何在 JAVA 中使用循环创建 FizzBu​​zz

转载 作者:行者123 更新时间:2023-11-30 07:08:25 24 4
gpt4 key购买 nike

我正在为学校写这个问题,但我遇到了一些问题。我无法让“printFizzBu​​zz”实际上升并计算包装函数“FizzBu​​zz”。我需要使用循环并尝试使用 FOR 循环。这里是初学者程序员,所以不,我根本没有太多使用循环。有什么提示或指示吗? ;)

说明如下。

public static String FizzBuzz(int number) 
{
if( (number%3==0) && (number%5==0)) {
return "FizzBuzz";
}
else if( number%3 == 0 ) {
return "Fizz";
} else if( number%5 == 0 ) {
return "Buzz";
} else {
return ""+number;
}
}

/*
* use a for loop to print the appropriate FizzBuzz values (feel free to
* call the provided FizzBuzz function) for values from from to to,
* including both of those values. Each value should be printed in a separate line.
*/
public static void printFizzBuzz(int from, int to, PrintStream out)
{
for (int i = 1; i <= to; ++i){
FizzBuzz(++i);
}
}

最佳答案

看一下 FizzBu​​zz 函数:

public static String FizzBuzz(int number) 

public static STRING 告诉您此函数返回一个字符串。

每次你写
FizzBu​​zz(++i);
想象这是一个像“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 <= to) >) 如果条件满足则执行循环体。之后,它将 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;

看来我们这里仍然有问题。为什么 i 是 3,然后是 5,然后是 7? 2、4、6 发生了什么?问题是,在调用 FizzBu​​zz (FizzBu​​zz(i++)) 时,您还将 i 加 1。

这是错误的,循环已经为你将 i 加 1,如果你再将 i 加 1,那么每轮都会加 2。

我会将最终的解决方案留给您。

关于java - 如何在 JAVA 中使用循环创建 FizzBu​​zz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39652324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com