我怎么知道达到Long.MAX_VALUE的'long'值

时间:2013-10-15 18:11:44

标签: 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;
}

}

如何知道long值是否已达到Long.MAX_VALUE

1 个答案:

答案 0 :(得分:10)

如果long值超出long的范围,则会发生溢出。由于这种溢出,下一个斐波纳契数似乎是负数。因此,检查小于零的数字是正确的。但是您不需要检查它是否大于Long.MAX_VALUE,因为没有long可以满足该条件。 &&是另一个错误;一个数字不能同时小于零且大于那个(任何)正数。

你只需要:

if (l < 0L) {