我编写了一段Java代码,它在一个无限循环中运行。
以下是代码:
public class TestProgram {
public static void main(String[] args){
Integer i = new Integer(0);
Integer j = new Integer(0);
while(i<=j && j<=i && i!=j){
System.out.println(i);
}
}
}
在上面的代码中,在while
循环中看到条件时,起初似乎程序不会进入while
循环。但实际上它是一个无限循环并且不断地打印值。这里发生了什么?
i<=j && j<=i && i!=j
这个条件总是为真。拿一张纸来计算一下,你就能明白了 :) - Pradeep Simhai
或j
,您期望循环何时终止? - Fred Larsoni<=j
和j<=i
可以得出结论,即i == j
,这与最后一个术语相矛盾。因此,整个表达式计算为 false,并且 while 循环不会执行。关键点在于对象标识! - Sirko