使用 "and" 运算符与使用 "&&" 运算符相比有什么不利之处吗?

31

使用“and”运算符与“&&”运算符相比有什么优缺点? 我个人认为,“and”只会引起困惑(具有讽刺意味)。

如果没有任何区别,为什么还要存在?这似乎很愚蠢和不必要。


2
没有区别。选择你想要的(但保持一致)。 - David G
这是一个有争议的问题,不适合在StackOverflow上讨论。请参考https://dev59.com/CXNA5IYBdhLWcg3wEZiT和https://dev59.com/w0rSa4cB1Zd3GeqPUjgt(个人而言,我喜欢这些运算符的iso646拼写方式)。 - johnsyweb
3
给一个极客打破僵局的赞。 - Tony Hopkinson
1
好吧,这并不像三字符符号那么糟糕 ;) 如果你想让你的代码具有可移植性,最好#include <ciso646> - Hans Passant
当您的代码使用 if (a öö b) 时,改用 if (a or b) 确实是有道理的。但如果您的 || 看起来像应该的那样(如果您使用的是 PC 或其他在过去 20 年左右生产的产品),问题源于在瑞典、挪威或德国等国家使用的 128 字符集,它们“窃取”了[]\ 和 {}| 的“不寻常”字符并分别用于制作 ÄÅÖ 和 äåö,我想 ^ 是ü,但我记不太清了。 - Mats Petersson
1
Visual Studio无法理解and... - germannp
2个回答

31

这是同一个操作符,区别仅在于风格。查阅您的项目文档,或者询问您的上司、妻子,或者抛硬币决定。


12
我问了我的妻子,她碰巧是英语专业毕业的。她更喜欢使用“and”。我想这就像任何理由一样好。 - HackySchmacky
1
我问了我的老板,她碰巧是一名律师。她更喜欢使用“&&”,因为“and”被普通人使用。 - user2558887

20

它们是过时的——最初引入它们是为了适应那些键盘上没有“^”或“|”字符的人。

此外,虽然“and”和“&&”是等效的……但是“and”和“&”是非常不同的。在许多不同的层面上,使用“and”代替“&&”只会令人困惑,包括给可怜的维护程序员带来完全不必要的“wtf?”经历。

我不会在任何代码中使用它们。而且我从来没有在任何“现场”代码中见过它们被使用。

我的看法是...

如果你感兴趣,这里还有更多关于这个主题的信息:


5
为什么你会在任何代码中使用它们? - juanchopanza
11
我认为你的推理与我一样。我断断续续地使用C和C ++已经有15年了,但我甚至不知道它们的存在。对于这么基础的东西,你不需要在理解上出现失败,因为事情已经够难的了。 - Tony Hopkinson
2
我不明白为什么人们总是抱怨位运算符在这个主题上的使用。 “and”和“&&”就像“bitand”和“&”一样不同。 这是怎么回事? 我不理解你回答中的这部分,请给我解释一下。 - user3063349
7
我非常不同意因为某个东西是新的或者不同的就不使用它的心态。我不仅会使用 and 运算符,实际上我更喜欢它而不是 &&,理由不止在于可读性。关于这个问题,您可以在这里查看我的回答:https://dev59.com/zXE95IYBdhLWcg3wSb7P#54185388 - tjwrona1992

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接