这是我的代码:
System.out.println("Enter upper limit of range");
long u = in.nextLong(), x = 0, y = 1, z = x+y;
System.out.println("Fibonacci Series till " + u + " -");
System.out.print(x + " " + y + " " + z + " ");
while (z < u) {
x = y;
y = z;
z = x + y;
System.out.print(z + " ");
}
我想跳过最后一次迭代,以便最后一次输出的数量不会超出限制。
例如,如果我将u
的值初始化为25
,那么它也会打印超出限制的34
。跳过最后一次迭代将不会显示数字 34
。
最佳答案
只需在将 z
增加到斐波那契数列中的下一个数字之前打印:
while (z < u) {
System.out.print(z+" ");
x = y;
y = z;
z = x + y;
}
通过此更改,最终迭代仍然会导致 z
被提前到一个太高的值,并且会在下一次迭代中失败,但您不会打印这个数字。
此重构还解决了您遇到的另一个问题,即不打印斐波那契数列中的第一个数字。通过将打印语句放在数字前进之后,z
的初始值将永远没有机会被打印。
关于java - 如何跳过java中while循环的最后一次迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47988382/