日期:2014-05-20  浏览次数:20631 次

a==1 和1==a有什么区别啊??????????????
如题

------解决方案--------------------
没区别
------解决方案--------------------
没区别
------解决方案--------------------
没有区别哦。
不过:
a=1和1=a
这可是有区别的哦
------解决方案--------------------
没什么区别!
------解决方案--------------------
没有区别

不过,1==a没有错误,1=a可是有错误的。
所以,这么做能防止把==误写成=

好像C/C++挺提倡的
个人觉得用处不大
------解决方案--------------------
防止把==误写成=
------解决方案--------------------
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)

------解决方案--------------------
没区别
------解决方案--------------------
防止把==误写成=
------------------------------------
java中不存在这个问题了,那是c/c++的
------解决方案--------------------
dddeee(dddeee) ( ) 信誉:89 Blog 2007-03-28 12:28:12 得分: 0


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


======
请问为什么不存在了?
java中不区别他们了么?

======
java中好像真不用区别了,不然在某些条件下,编译会出错的

------解决方案--------------------
没区别
------解决方案--------------------
没区别

------解决方案--------------------
执行结果一致,是个好的习惯,为防止将“==”误写为“=”,在C中比较使用,Java的类型检查能发现此问题
------解决方案--------------------
==是逻辑判断符号
所以两边要判断的位置交换不交换不会影响结果
------解决方案--------------------
==都是在判断里面
1=a编译都编译不过去
------解决方案--------------------
没区别啦,都是判断是否相等的问题而已!
------解决方案--------------------
没区别,只是编程风格不同而已啦
------解决方案--------------------
没区别
------解决方案--------------------
没有区别
------解决方案--------------------
上上上楼的
谁说=写在判断里会编译不过去?

boolean a=false;
if(a=true)//这里就可以编译过去吧
{
...
}
------解决方案--------------------
没区别
------解决方案--------------------
a==1 和1==a 从语法上讲是没什么区别的。

上面提到的“防止 == 误写成 =”的确是一个不错的理由 :)

另外,看看下面两段代码:

if (someObject.someMethod(someParameter) == 1) {
// ...
}

if (1 == someObject.someMethod(someParameter)) {
// ...
}

从程序的清晰程度上比较,后者比较容易看清楚返回值的意义。
------解决方案--------------------
to 上上上楼的
谁说=写在判断里会编译不过去?

boolean a=false;
if(a=true)//这里就可以编译过去吧