使用AND或&&amp ;?有什么好处?

时间:2009-06-05 01:57:50

标签: language-features boolean-logic

目前,我正在使用&&和||而不是AND和OR,因为这就是我的教学方式。但是,在大多数语言中,两者都是有效的语法。用任何语言对其中一个有什么好处吗?

我确实试图搜索这个问题,但这有点难。它无法正确解释我的输入。

8 个答案:

答案 0 :(得分:2)

Perl拥有全部四个{&& ||或者}或者它们的优先级不同。 “和”和“或”具有非常低的优先级,因此您可以执行“复杂功能 - 调用此处或死亡!”等操作。并且你不会意外地“或”在他们不想要它的左侧啜饮一些东西。

答案 1 :(得分:2)

你问“用任何语言对其中一个有什么好处吗?”这当然取决于编程语言。

同时实施and&&(以及相应的or||)的语言将采用以下两种方式之一:

  • 两者的行为方式完全相同。在这种情况下,语言在使用其中一种语言时没有任何优势。

  • 每个行为都不同。在这种情况下,优点是您可以通过使用其中一种来获得不同的行为。

这一切听起来有点滑稽,但它真的具体,就像没有谈论特定语言一样。您的问题明确地想知道所有语言,但这是一个需要按语言回答的问题。

答案 2 :(得分:1)

这取决于语言,但在PHP上,我会小心使用&&与“和”相对。我经常使用的是“&&”和“||”

http://us3.php.net/manual/en/language.operators.logical.php

$g = true && false; // $g will be assigned to (true && false) which is false
$h = true and false; // $h will be assigned to true

答案 3 :(得分:1)

在某些语言中,&&的运算符优先级高于AND

答案 4 :(得分:0)

如果两者都工作正常,那么我会说这是个人偏好,在大多数情况下,它们被编译成相同的二进制代码,如下所示:11100010001000101001001010 [不是真正的代码,只是一个例子]。

答案 5 :(得分:0)

&安培;&安培; =同一个键的两次击键。 AND =不同键的三次击键。

答案 6 :(得分:0)

我不确定您使用的语言是什么,但有些语言区分普通布尔运算符和短路运算符。例如,以下是MATLAB中的普通布尔运算符:

C = or(A,B);
C = A | B;  % Exactly the same as above

然而,这是一个短路运营商:

C = A || B;

短路语法将评估第一个参数,然后根据值,可能会跳过评估第二个参数。例如,如果 A 已经为真,则不必为OR运算评估 B ,因为结果保证为true。当 B 替换为涉及某种昂贵计算的逻辑操作时,这很有用。

这是wikipedia link讨论短路运算符及其几种语言的语法。

答案 7 :(得分:0)

除非没有任何优先级问题,否则我会说可读性存在差异。请考虑以下事项:

if (&x == &y && &y == &z) {
    // ..
}

#define AND &&
if (&x == &y AND &y == &z) {
    // ..
}