0

回答完这个问题后,我的脑海里又多了一个。问题:为什么将整数变量值设置为Integer.MAX_VALUE.

例如。

int x = Integer.MIN_VALUE;
x--;
if (x == Integer.MAX_VALUE) {
    System.out.println("Why....");
}

必须有某种原因才能明确实施此行为,否则抛出 anException会是一个更好的主意。我无法在 JLS 中找到/定位这种行为。

4

2 回答 2

3

因为下溢。计算机多年来一直像这样工作,在这里抛出异常将是一个可怕的想法。

于 2013-09-19T12:12:41.163 回答
2

http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.2

“整数运算符不以任何方式指示上溢或下溢。”

于 2013-09-19T13:35:31.917 回答