if (0 == a) 和 if (a == 0)

a是变量,0是字面量

写成 0 == a 是想判断a与0是否相等,即判断 a == 0 这个表达式是否为真的另一种写法

因为有些初学者在判断是否相等时容易写成 a = 0 这样的式子(但他其实是想表达是 a == 0)

但是由于判断写成了赋值,这样写的话编译器不会报错,因为 等号是右结合的,字面量0是可以赋值给变量a的,程序出错了不容易查出来。

如果写成 0 = a,这样的表达式,因为变量无法赋值给字面量,所以如果想判断是否相等(即使写成了赋值),在编译的时候就会报错。

这样更容易找出错误。

if(0 == a)和 if(a == 0)都没有区别,只是习惯问题,只是写成 0 == a在判断是否相等时更安全。

posted @ 2012-07-27 11:24  kaizenly  阅读(2759)  评论(0编辑  收藏  举报
打赏