以下是我的代码,但if
语句不起作用。
int i = 0;
while (true) {
long l = fibonacci(i++);
if (l < 0L && l > Long.MAX_VALUE) {
System.out.println("over");
break;
}
}
如何知道long
值是否已达到Long.MAX_VALUE
?
答案 0 :(得分:10)
如果long
值超出long
的范围,则会发生溢出。由于这种溢出,下一个斐波纳契数似乎是负数。因此,检查小于零的数字是正确的。但是您不需要检查它是否大于Long.MAX_VALUE
,因为没有long
可以满足该条件。 &&
是另一个错误;一个数字不能同时小于零且大于那个(任何)正数。
你只需要:
if (l < 0L) {