if(a==1) 与 if(1==a)等价吗?

时间:2021-02-23 19:54:49
int a = 10;
if (a == 1)
 与
if (1== a )

等价吗? 如果不等价 哪种更好?

12 个解决方案

#1


等价与否试试便知。
C/C++一般习惯后者;我个人习惯前者。

#2


效果是等价的
用后面那种较好,因为实际开发中很容易把两个=写成一个=
如果用前面那种a=1是完全能通过编译并且运行起来的,最后跑出来的结果不对又很难找到问题
而用后面那种则编译都过不了,马上能发现问题

#3


写后者好处是不容易因为笔误,导致赋值
不过我也习惯前者。。更符合一般人的逻辑习惯

#4


等价。不过即使使用了'=',现代编译器一般也都会有一个warning

#5



引用 4 楼 jiqiang01234 的回复:
等价。不过即使使用了'=',现代编译器一般也都会有一个warning


引用 3 楼 qq20004604 的回复:
写后者好处是不容易因为笔误,导致赋值
不过我也习惯前者。。更符合一般人的逻辑习惯




引用 2 楼 qq423399099 的回复:
效果是等价的
用后面那种较好,因为实际开发中很容易把两个=写成一个=
如果用前面那种a=1是完全能通过编译并且运行起来的,最后跑出来的结果不对又很难找到问题
而用后面那种则编译都过不了,马上能发现问题



谢谢各位   之前遇到的一个笔试题  那会儿正好在看 《Effective C++》 ,然后遇到这个题的时候 老以为是有什么效果上的差别,确实 a==1 会笔误,可能除此以外 没有任何差别了。谢谢各位。

#6


等价,第二种好,防止少些等号导致赋值而永远为真或假

#7


基本可以说是等价的,如果经常会把==写成=,那么用第二种会编译器会提示错误

#8


等价,if(1==a)好

#9


if (1== a ) 写法好,可以避免许多错误,1=a编译器会报错,但a=1整个表达式返回true。

#10


等价,不过写后者可以避免将== 写成 = 而产生不易发现的错误

#11


细节决定成败。

#12


都可以。都可以。

#1


等价与否试试便知。
C/C++一般习惯后者;我个人习惯前者。

#2


效果是等价的
用后面那种较好,因为实际开发中很容易把两个=写成一个=
如果用前面那种a=1是完全能通过编译并且运行起来的,最后跑出来的结果不对又很难找到问题
而用后面那种则编译都过不了,马上能发现问题

#3


写后者好处是不容易因为笔误,导致赋值
不过我也习惯前者。。更符合一般人的逻辑习惯

#4


等价。不过即使使用了'=',现代编译器一般也都会有一个warning

#5



引用 4 楼 jiqiang01234 的回复:
等价。不过即使使用了'=',现代编译器一般也都会有一个warning


引用 3 楼 qq20004604 的回复:
写后者好处是不容易因为笔误,导致赋值
不过我也习惯前者。。更符合一般人的逻辑习惯




引用 2 楼 qq423399099 的回复:
效果是等价的
用后面那种较好,因为实际开发中很容易把两个=写成一个=
如果用前面那种a=1是完全能通过编译并且运行起来的,最后跑出来的结果不对又很难找到问题
而用后面那种则编译都过不了,马上能发现问题



谢谢各位   之前遇到的一个笔试题  那会儿正好在看 《Effective C++》 ,然后遇到这个题的时候 老以为是有什么效果上的差别,确实 a==1 会笔误,可能除此以外 没有任何差别了。谢谢各位。

#6


等价,第二种好,防止少些等号导致赋值而永远为真或假

#7


基本可以说是等价的,如果经常会把==写成=,那么用第二种会编译器会提示错误

#8


等价,if(1==a)好

#9


if (1== a ) 写法好,可以避免许多错误,1=a编译器会报错,但a=1整个表达式返回true。

#10


等价,不过写后者可以避免将== 写成 = 而产生不易发现的错误

#11


细节决定成败。

#12


都可以。都可以。