if(a!=a)
  System.out.println("123");
问:a为什么时输出123

解决方案 »

  1.   

    a不等于a时才会输出啊!
    试问:a什么时候不等于a呢?他的问题就是问的a是什么时条件成立!
      

  2.   

    应该不会有这种情况!
    String str1="123";
    String str2=new String("123");
    System.out.println(str1==str2);
    你看看这个嘛,你那种情况没有见过 !!!
      

  3.   

    if a=null,then we will get the result
      

  4.   

    好像在哪看过
    if(Double.NaN != Double.NaN) {
    System.out.println("123");
    }
      

  5.   

    这样确实会输出123. LZ的问题是a!=a.所以把Double.NaN赋给a的话,仍然不会打印123。
      

  6.   

    之前引用错了。。
    这样确实会输出123. LZ的问题是a!=a.所以把Double.NaN赋给a的话,仍然不会打印123。
      

  7.   

    这样确实会输出123. LZ的问题是a!=a.所以把Double.NaN赋给a的话,仍然不会打印123。怎么会不行呢,你试试 double a = Double.NaN;
    if(a != a) {
    System.out.println("123");
    }
      

  8.   

    这样就回输出123
    package csdn.programbbs_524;public class Snippet {
    public static void main(String[] args) {
    Double a = null;
    if(a.NaN != a.NaN)
    System.out.println("123");
    }
    }
      

  9.   

    我的答案是不可能!因为a与a肯定在同一个地址,a!=a肯定是false!
      

  10.   

    这样确实会输出123. LZ的问题是a!=a.所以把Double.NaN赋给a的话,仍然不会打印123。怎么会不行呢,你试试 double a = Double.NaN;
    if(a != a) {
    System.out.println("123");
    }
    好吧。我用的是Double a = Double.NaN.
    神奇。