【发布时间】:2014-10-24 02:13:31
【问题描述】:
这个问题出现在我的一个用 Java 编写的实习职位的面试问题中。
请注意,布尔函数 isSame 实际上将 2 个参数声明为 Integer 类 - 而不是 int,所以我认为 a 和 b 是对象,对吗?
public class ForLoop{
public static boolean isSame(Integer a, Integer b) {
return a == b;
}
public static void main(String []args){
int i = 0;
for (int j=0; j<500; ++j) {
if (isSame(i,j)) {
System.out.println("Same i = "+i);
System.out.println("Same j = "+j);
++i;
continue;
} else {
System.out.println("Different i = "+i);
System.out.println("Different j = "+j);
++i;
break;
}
}
System.out.println("Final i = " + i);
}
}
我的第一个想法是for 循环将在第一次运行时终止,结果为Final i = 1,
但令我惊讶的是,最终输出是i = 129。当 i & j = 128 时,循环终止。
Same i = 126
Same j = 126
Same i = 127
Same j = 127
Different i = 128
Different j = 128
Final i = 129
谁能解释一下?
【问题讨论】:
-
The answer here 会回答你的问题
标签: java class object for-loop