为什么用if(x==0)而不是if(0==x)?

[复制链接]
15430|54
keer_zu 发表于 2015-3-25 15:22 | 显示全部楼层
xmfbit 发表于 2015-3-17 19:40
额。。。其实推荐的应该是后者吧。。。但是人的习惯使然,让前者更流行

其实这个问题都不是问题
谭小健 发表于 2015-3-28 07:57 来自手机 | 显示全部楼层
楼主是一个善于发现问题的人
keer_zu 发表于 2015-3-30 10:31 | 显示全部楼层
谭小健 发表于 2015-3-28 07:57
楼主是一个善于发现问题的人

:D
lqc754 发表于 2015-6-24 14:36 | 显示全部楼层
本帖最后由 cooldog123pp 于 2022-5-21 19:03 编辑

路过看一下!
1026869700 发表于 2015-6-25 16:22 | 显示全部楼层
yyy71cj 发表于 2014-12-28 11:45
在逻辑上,这本来就是一样的。

        但是在生活中,可能会有所不同。例如:

这个解释完全赞同
lifebird 发表于 2015-6-29 08:38 | 显示全部楼层
首先,我认可 if (0 == x)是个好习惯,尤其对于爱犯错的初学者,我在写给别人的程序中也会用 if (0 == x)
但我写给自己的程序都是用 if (x == 0) 且我强烈推荐这个写法,理由嘛,等你编程序到一定境界自然会感受到。
Hu.Te 发表于 2015-7-10 13:58 | 显示全部楼层
或许还是跟人的习惯有关~
绝不会有人这么理解语言:
if(你爸是工程师) 等价于 if(工程师是你爸)
你能从情感上接受吗?
lifebird 发表于 2015-7-11 09:23 | 显示全部楼层
楼上这位同学已经涉及到阅读程序思维的效率和耗费问题了,令人欣慰,其实解决这个问题的最终方式还是个人认真些,或者编译器对 if (x = 0) 给出警告,否则 大家碰到 if (x == y) 这种没常数的咋办。
diweo 发表于 2015-7-15 19:56 | 显示全部楼层
如果把if(x==0)写成if(x=0)会怎样呢?

这么低级的老掉牙的问题,在10年前,可能确实是个问题。
但是编译器也在不断发展。如果哪个编译器碰到这样的语句而没有报警,那我只能说这个编译器太旧了。
ljq13159213270 发表于 2015-9-14 11:08 | 显示全部楼层
本帖最后由 ljq13159213270 于 2015-9-14 11:09 编辑

楼主应该是写错了吧,一般编程时最好的就是常量在左边,即if(0==x),如果写成if(x=0)编译器会报错,而且编程规范中也是常量写左边的
Simon21ic 发表于 2015-9-16 15:18 | 显示全部楼层
本帖最后由 Simon21ic 于 2015-9-16 15:26 编辑

这有啥好争的?看习惯了,我习惯 0 == X
keer_zu 发表于 2015-9-17 07:38 来自手机 | 显示全部楼层
值得推敲
江枫渔火 发表于 2015-10-7 23:23 | 显示全部楼层
一些前辈都把这些当做妙招炫技。

如果你是经常把==写成=,那你就应该用0==x的方式写比较式,将常量写在前面,一旦你漏写了一个=号,编译器会报错,你能快速发现错误。

一些主张是,尊重语义与自然语言逻辑,不要用胡里花哨的伎俩。这明明是为了弥补自己粗心的举措。因为违反语义,所以N多的新人会问:为什么用0==X而不是x==0?

但楼主的提问显然是相反的
lijiaxb 发表于 2015-10-9 16:06 | 显示全部楼层
gaoyang9992006 发表于 2014-12-29 00:05
这个作用就是直接使用汇编判0指令而不是比较指令

现代的编译器,完全可以识别了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部