-1

我有点新,所以请耐心等待。我在 YouTube 视频中看到了以下内容:

public class Recursion {
    public static void main(String[] args) {
        int index = 0;
        while (true) {
            System.out.println(fibonacci(index));
            index++;
        }
    }

    public static long fibonacci(int i) {
        if (i == 0) return 0;
        if (i <= 2) return 1;
        long fibTerm = fibonacci(i - 1) + fibonacci(i - 2);
        return fibTerm;
    }
}

我的问题是,是否有可能在 5、10、15、20 甚至 25 个数字之后停止打印?

4

4 回答 4

3

用“for”循环替换“while”循环。

public static void main(String[] args)
{
    int numberOfIterations = 25;
    for (int index = 0; index < numberOfIterations; index++)
    {
        System.out.println(fibonacci(index));
    }
}

这正是“for”循环的用途:循环一定次数,然后停止。

于 2013-10-23T20:08:09.877 回答
0

通常你会做类似的事情

while(index < 20) {
于 2013-10-23T20:07:53.297 回答
0

是的,很容易:

public static void main(String[] args)
{
    int index = 0;
    while (true)
    {
        System.out.println(fibonacci(index));
        index++;
        if (index == 25) { //stop after having printed the 25th number
            break;
        }
    }
}
于 2013-10-23T20:08:03.617 回答
0

欢迎来到堆栈溢出!

是的,您可以在打印 n 个数字后停止打印数字,这非常容易。

while (index < n)
{
    System.out.println(fibonacci(index));
    index++;
}

这就是导致它打印的原因,并且由于您的布尔值(真或假)始终为真,它将永远循环。这可以通过用while (true)布尔语句替换“true”来解决。即:while (index < n)其中 n 是要打印的最大数字数(5、10、15、25 等)

于 2013-10-23T20:11:02.750 回答