我编写了以下代码,当我有打印语句和没有它时,它的答案不同。
class test
{
public static void main(String args[])
{
int i = Integer.MAX_VALUE;
int j = Integer.MAX_VALUE-100;
int count = 0;
for(; j<=i; j++){
count++;
//System.out.println(j); // If we remove comment, answer is different
}
System.out.println(count + ", " + j + ", " + (j<=i));
}
}
没有打印语句的答案是:
101, -2147483648, true
并且带有打印语句是:
15588, -2147468161, true
在这两种情况下,最终条件都应该返回false
,但它会返回true
。任何人都可以解释这一点。