问题 使用“和”运算符与&&运算符的任何缺点? [关闭]


使用“和”运算符与&&运算符有什么优缺点?我个人认为“和”只会引起混淆(具有讽刺意味)。

如果没有任何差异,为什么会存在?这看似愚蠢和不必要。


2444
2018-02-06 23:28


起源

不,没有区别。选择你想要的那个(但保持一致)。 - 0x499602D2
这是一个有争议的问题,并不适合StackOverflow。也可以看看 stackoverflow.com/q/1103313/78845 和 stackoverflow.com/q/1703979/78845 (就个人而言,我喜欢这些运算符的iso646拼写)。 - Johnsyweb
拥有一个极客破冰者的+1。 - Tony Hopkinson
好吧,它没有三卦那么糟糕;)你会更好 #include <ciso646> 如果您希望您的代码可移植。 - Hans Passant
当你的代码说出来时,这确实很有意义 if (a öö b) 改为使用 if (a or b)。但是如果你的'||'实际上看起来应该是它(如果你使用的是PC或者在过去20年左右生产的其他产品),那么这个问题就源于瑞典的128个字符集,挪威或德国,“偷走”[] \和{} |的“不寻常”字符分别制作ÄÅÖ和äåö,我认为^是ü,但我记不起来了。 - Mats Petersson


答案:


它们是不合时宜的 - 它们最初是为了容纳那些没有“^”或“|”的人而引入的键盘上的字符。

此外,虽然“和”和“&&”是等价的......“和”和“&”是完全不同的。出于几个不同的原因,使用“和”而不是“&&”简单地混淆了许多不同的级别。包括给可怜的维护程序员一个完全不必要的“wtf?”经验。

我会  在任何代码中使用它们。我当然不会 看到 它们用在任何“实时”代码中。

恕我直言...

如果您有兴趣,可以参考以下主题:


9
2018-02-06 23:35



你为什么要这样做 不 在任何代码中使用它们? - juanchopanza
我应该想到和我一样的理由。我一直在做C&C ++ 15年,我甚至都不知道它们存在。你不需要围绕这个基本事物的理解失败,事情已经足够困难了。 - Tony Hopkinson
我不明白为什么人们总是抱怨这个主题的按位运算符。 “和”和“&&”不同,“bitand”和“&”有什么关系?不明白你的这部分答案,请赐教 - user3063349


它是同一个运营商。差异只是风格之一。查阅您的项目文档,或询问您的老板,您的妻子,或掷硬币。


7
2018-02-06 23:30