在UIL CS数据包中遇到了一个奇怪的问题 这是解决方案
public class equality {
public static void main(String[] args) throws IOException {
Scanner scan = new Scanner (new File("equality.dat"));
while (scan.hasNext()) {
int start = scan.nextInt();
int step = scan.nextInt();
int z = start;
for (int i = 0; i < 5; i++) {
Integer a = z;
Integer b = z;
System.out.printf("%+4d == %+4d is %s\n",a,b,(a==b)); // <-- Confusing part
z+=step;
}
System.out.println();
}
scan.close();
}
}
我想知道是否有人可以解释为什么(a==b)
返回true / false。我认为这与它的比较参考而不是价值本身这一事实有关,但如果是这样的话,那么它们都不会是假的吗?我很困惑:/