如题

解决方案 »

  1.   

    没有区别不过,1==a没有错误,1=a可是有错误的。
    所以,这么做能防止把==误写成=好像C/C++挺提倡的
    个人觉得用处不大
      

  2.   

    13:       if (a0 == 9)
    0040102F   cmp         dword ptr [ebp-4],9
    00401033   jne         main+32h (00401042)15:       if (9 == a0)
    00401042   cmp         dword ptr [ebp-4],9
    00401046   jne         main+45h (00401055)
      

  3.   

    防止把==误写成=
    ------------------------------------
    java中不存在这个问题了,那是c/c++的
      

  4.   

    dddeee(dddeee) ( ) 信誉:89    Blog  2007-03-28 12:28:12  得分: 0  
     
     
       防止把==误写成=
    ------------------------------------
    java中不存在这个问题了,那是c/c++的
      
     
    ======
    请问为什么不存在了?
    java中不区别他们了么?
      

  5.   

    dddeee(dddeee) ( ) 信誉:89    Blog  2007-03-28 12:28:12  得分: 0  
     
     
       防止把==误写成=
    ------------------------------------
    java中不存在这个问题了,那是c/c++的
      
     
    ======
    请问为什么不存在了?
    java中不区别他们了么?======
    java中好像真不用区别了,不然在某些条件下,编译会出错的
      

  6.   

    执行结果一致,是个好的习惯,为防止将“==”误写为“=”,在C中比较使用,Java的类型检查能发现此问题
      

  7.   

    dddeee(dddeee) ( ) 信誉:89    Blog  2007-03-28 12:28:12  得分: 0  
     
     
       防止把==误写成=
    ------------------------------------
    java中不存在这个问题了,那是c/c++的->
    呵呵,是我有点想当然了。
    java中基本可以避免这个问题是因为java中的布尔类型(true OR false)定义比C(非0即真)严格了,所以在java中如果用1=a当作逻辑表达式来用,会产生一个从int到boolean类型不匹配的错误。
    那么所谓的“防止把==误写成= ” 只有在这时候才会有点作用了:
    boolean isProblem = false;
    ....
    if(isProblem == false ) 
       ....;不过这样也有点钻牛角尖了(很少有用布尔变量来做==的吧, 比如此处用!isProblem可以替代了)
      

  8.   

    把1=a写在判断里编译不过去的,所以java里很难写错
      

  9.   

    上上上楼的
    谁说=写在判断里会编译不过去?boolean a=false;
    if(a=true)//这里就可以编译过去吧
    {
        ...
    }
      

  10.   

    a==1 和1==a 从语法上讲是没什么区别的。上面提到的“防止 == 误写成 =”的确是一个不错的理由  :)另外,看看下面两段代码:  if (someObject.someMethod(someParameter) == 1) {
        // ...
      }  if (1 == someObject.someMethod(someParameter)) {
        // ...
      }从程序的清晰程度上比较,后者比较容易看清楚返回值的意义。
      

  11.   

    to 上上上楼的
    谁说=写在判断里会编译不过去?boolean a=false;
    if(a=true)//这里就可以编译过去吧
    {
        ...
    }
    ----------------------
    这个是能编译过去,这里的a=true的含义是把true赋值给a,然后判断a是否为true。不过一般谁会这样写呢?
      

  12.   

    a==1 和1==a 没什么区别的
    ==是判断两个是否相等,=是赋值,属于右操作符在Java中,如果写(1=a),编译时就不会通过,属于语法错误。
    如果在开发工具时写这句,就会直接出现波浪线了。
      

  13.   

    a==1 和1==a 没什么区别的
    ==是判断两个是否相等
    一般用在if()之中
      

  14.   

    没区别.
    主要是源自C++的代码风格.
    一般==用于判断.如果书写错误成了=的话,1==a就会报错了.嘿..而用a==1则成了赋值,编译时不报错
      

  15.   

    本质上是没有的,但小区别是有的,起码他a==1和1==a,一个a在左边,一个a在右边,不能小看这个问题!!
      

  16.   

    主要是体现在编译的时候,假如把a == 1写成 a = 1了,编译器不会给报错,但是就不是应有的结果了,如果写成 1 = a,编译器会给你报错,常量不可赋值,体现到这样.