gpt4 book ai didi

java - 为什么 (i<=j && j<=i && i!=j) 评估为 TRUE?

转载 作者:IT老高 更新时间:2023-10-28 11:23:36 26 4
gpt4 key购买 nike

我写了一段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评估为 true ,因为自动拆箱发生在 int比较,然后是 ij保持默认值,0 .

  • j <= i评估为 true由于以上原因。

  • i != j评估为 true , 因为两者 ij是不同的对象。在比较对象时,不需要自动拆箱。

所有条件都为真,并且您没有更改ij在循环中,所以它无限运行。

关于java - 为什么 (i<=j && j<=i && i!=j) 评估为 TRUE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18804599/

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