wyf*_*wyf 0 java android genetic-algorithm
下面是我的代码,但该if声明不起作用.
int i = 0;
while (true) {
long l = fibonacci(i++);
if (l < 0L && l > Long.MAX_VALUE) {
System.out.println("over");
break;
}
Run Code Online (Sandbox Code Playgroud)
}
我怎么知道long价值是否达到了Long.MAX_VALUE?
rge*_*man 10
如果某个long值超出了a的范围long,则会发生溢出.由于这种溢出,下一个斐波纳契数似乎是负数.因此,检查小于零的数字是正确的.但是你不需要检查它是否大于Long.MAX_VALUE,因为没有long能满足这个条件.这&&是另一个错误; 数字不能同时小于零且大于那个(任何)正数.
您只需要:
if (l < 0L) {
Run Code Online (Sandbox Code Playgroud)