我似乎找不到以下代码破坏的原因:
从我的角度来看,发生的事情是整数 lbnd 减少了
public class Test {
public static void main(String[] args) {
methode1();
}
static void methode1() {
int ubnd = Integer.MAX_VALUE;
int lbnd = ubnd;
while ((float)lbnd == (float)ubnd) {
--lbnd;
}
System.out.println((++lbnd) + ".." + ubnd);
}
}
问题是这个循环应该是我所看到的无限循环,但是它在 64 个循环后中断,因为 int 的值发生了变化。结果是:
2147483584..2147483647
但它应该是一个无限循环:
2147483647..2147483647