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

时间:2017-06-20 07:31:35

标签: java variables while-loop variable-assignment

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

以一种条件始终为真的方式声明我:

while(i != i) {
}

在java中技术上是否可以分配这类东西?

1 个答案:

答案 0 :(得分:40)

NaN不等于自己,所以

double i = Double.NaN;

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

来自Java语言规范的引用:

  

NaN是无序的,所以:

     
      
  • 如果其中一个或两个操作数均为<,则数值比较运算符<=>>=false将返回NaN(§) 15.20.1)。
  •   
  • 如果任一操作数为==,则等于运算符false将返回NaN。特别是,如果(x<y) == !(x>=y)falsex将为y   NaN!=
  •   
  • 如果任一操作数为true(第15.21.1节),则不等式运算符NaN将返回x!=x。特别是true x当前NaN {{1}}   是{{1}}。
  •