while(i != i) { } - 是否有可能有一个总是为真的赋值



最近我接受了一家软件公司的面试,在技术能力回合中提出了以下问题:

以条件始终为真的方式声明 i:

while(i != i) {
}

在 java 中分配这种东西在技术上是可能的吗?

NaN

等于自身,所以

double i = Double.NaN;

但我不认为这是一个好的面试问题。

引用自Java语言规范:

NaN 是无序的,因此:

  • 数值比较运算符<<=>>= 如果其中一个或两个操作数NaN则返回 false (§15.20.1(。
  • 相等运算符==如果任一操作数NaN则返回false。 特别是,false (x<y) == !(x>=y)如果xy NaN.
  • 如果任一操作数NaN,则不等式运算符!=返回true (§15.21.1(。特别是,x!=xtrue当且仅当xNaN.

相关内容

最新更新