34

为什么有四个逻辑运算符:

&, &&
|, ||

用法上有什么区别?

是的,我检查了文档,但我有点困惑。文档说:

 ‘&’ and ‘&&’ indicate logical AND and ‘|’ and ‘||’ indicate
 logical OR.  The shorter form performs elementwise comparisons in
 much the same way as arithmetic operators.  The longer form
 evaluates left to right examining only the first element of each
 vector.  Evaluation proceeds only until the result is determined.
 The longer form is appropriate for programming control-flow and
 typically preferred in ‘if’ clauses.

我认为一个例子将清楚地展示它们。谢谢。

4

1 回答 1

30

主要区别如下...

  1. 长格式(&& 或 ||)短路,这意味着它是否可以通过仅验证第一个元素来识别结果。在做 && 时,如果前两个元素的比较结果为 false,那么比较下一组元素也会导致False. 因此,它返回 false。做的时候|| 如果比较结果在前几个元素中为真,我们可以自信地说任何进一步的验证都不会改变结果,所以它返回True

  2. 短格式继续为整个向量做,并创建一个结果向量并返回它。

希望这可以帮助。

& 和 && 表示逻辑 AND 和 | 和 || 表示逻辑或。较短的形式执行元素比较的方式与算术运算符大致相同。较长的形式从左到右评估,仅检查每个向量的第一个元素。仅在确定结果之前进行评估。较长的形式适用于编程控制流,通常在 if 子句中首选。

来源:http ://stat.ethz.ch/R-manual/R-patched/library/base/html/Logic.html

于 2013-04-16T02:40:19.617 回答