Pregunta

Actualmente, estoy usando && y || en lugar de AND y OR porque eso es lo que me enseñaron. En la mayoría de los idiomas, sin embargo, ambos son sintaxis válida. ¿Hay alguna ventaja en uno u otro en cualquier idioma?

Yo probé a buscar a esta pregunta, pero es un poco difícil. No interpreta mi entrada correctamente.

¿Fue útil?

Solución

Usted pregunta “¿Hay alguna ventaja en uno u otro en cualquier idioma?” Esta es, por supuesto, depende del lenguaje de programación.

Idiomas que implementan tanto and y && (y correspondientemente or y ||) lo hará una de dos maneras:

  • Ambos se comportan exactamente de la misma manera. En cuyo caso, no hay ninguna ventaja proporcionada por el lenguaje en el uso de uno sobre el otro.

  • Cada comporta de manera diferente. En cuyo caso, la ventaja es que se puede obtener un comportamiento diferente mediante el uso de uno u otro.

Todo eso suena un poco gracioso, pero en realidad es tan específica como uno puede conseguir sin hablar de un idioma específico. Su pregunta explícitamente quiere saber acerca de todos idiomas, pero es una pregunta que debe ser respondida por idioma.

Otros consejos

Perl tiene los cuatro {&& || y o} pero difieren en su precedencia. "Y" y "o" tienen muy baja prioridad para que pueda hacer cosas como "complejo de la función-call-aquí o morir $!" y no tienen por accidente "o" sorber algo en su lado izquierdo que usted no desea.

depende de la lengua, pero en PHP, yo tendría cuidado acerca del uso de && frente a "y". Los que yo utilizo a menudo son "&&" y "||"

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

En algunos idiomas && tendrá una prioridad de los operadores más alta que AND.

Si tanto funciona bien, entonces yo diría que es realmente la preferencia personal, en la mayoría de los casos, que se compilan en código binario misma como esto:. 11100010001000101001001010 [código no real, sólo un ejemplo]

&& = dos pulsaciones de teclas de la misma clave. Y = tres pulsaciones de teclado de teclas diferentes.

No estoy seguro de qué idioma se está utilizando, pero algunos lenguajes de diferenciar entre un operador booleano normal y un operador de cortocircuito. Por ejemplo, los siguientes son los operadores booleanos normales en MATLAB:

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

Sin embargo, este es un operador de cortocircuito:

C = A || B;

La sintaxis de cortocircuito evaluará el primer argumento y, a continuación, en función del valor, potencialmente omitirá la evaluación del segundo argumento. Por ejemplo, si A ya es cierto, B no tiene que ser evaluado para una operación OR, puesto que el resultado se garantiza que sea cierto. Esto es útil cuando B se reemplaza con una operación lógica que implica algún tipo de computación caro.

Aquí hay una Wikipedia enlace discutir los operadores de cortocircuito y su sintaxis para unos pocos idiomas.

A menos que no hay problemas de precedencia, yo diría que hay diferencias en la legibilidad. Considere lo siguiente:

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

#define AND &&
if (&x == &y AND &y == &z) {
    // ..
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top