gpt4 book ai didi

java - 当 RHS == Integer.MAX_VALUE 时对 int 进行 boolean 比较,为什么这个循环会终止?

转载 作者:搜寻专家 更新时间:2023-11-01 03:53:44 24 4
gpt4 key购买 nike

<分区>

我想弄清楚为什么这个循环会终止......

@Test
public void test() {

int counter=0;
int from = 0;
int until = Integer.MAX_VALUE;

while(counter <= until) {
counter++;
if(counter < from) {
System.out.println("continuing " + counter + " <= " + from);
continue;
}
}
System.out.println("finished " + counter);
}

while(counter <= until)应始终解析为 true因为计数器不能增加到超过 Integer.MAX_VALUE。因此,循环不应终止。

但是,在 Eclipse 中,如果我使用 JUnit 运行器运行,我会得到:

finished 108772

如果我在调试器中运行,我得到:

finished 125156

if(counter < from) 中的输出永远不会输出。如果我删除该 block ,代码仍会终止,这次是在 Integer.MAX_VALUE。

finished 2147483647

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com