Los operadores "&&", "||" y "!" relacionan expresiones lógicas, formando a su vez nuevas expresiones lógicas. Sintaxis:
<expresión1> && <expresión2>
<expresión1> || <expresión2>
!<expresión>
El operador "&&" equivale al "AND" o "Y"; devuelve "true" sólo si las dos expresiones evaluadas son "true" o distintas de cero, en caso contrario devuelve "false" o cero. Si la primera expresión evaluada es "false", la segunda no se evalúa.
Generalizando, con expresiones AND con más de dos expresiones, la primera expresión falsa interrumpe el proceso e impide que se continue la evaluación del resto de las expresiones. Esto es lo que se conoce como "cortocircuito", y es muy importante, como veremos posteriormente.
A continuación se muestra la tabla de verdad del operador &&:
Expresión1
|
Expresión2
|
Expresión1 && Expresión2
|
false
|
ignorada
|
false
|
true
|
false
|
false
|
true
|
true
|
true
|
El operador "||" equivale al "OR" u "O inclusivo"; devuelve "true" si cualquiera de las expresiones evaluadas es "true" o distinta de cero, en caso contrario devuelve "false" o cero. Si la primera expresión evaluada es "true", la segunda no se evalúa.
Expresión1
|
Expresión2
|
Expresión1 || Expresión2
|
false
|
false
|
false
|
false
|
true
|
true
|
true
|
ignorada
|
true
|
El operador "!" es equivalente al "NOT", o "NO", y devuelve "true" sólo si la expresión evaluada es "false" o cero, en caso contrario devuelve "true". La expresión "!E" es equivalente a (0 == E).
Expresión
|
!Expresión
|
false
|
true
|
true
|
false
|
Los operadores son "<", ">", "<=" y ">=", que comprueban relaciones de igualdad o desigualdad entre dos valores aritméticos. Sintaxis:
<expresión1> < <expresión2>
<expresión1 > < <expresión2>
<expresión1 <= <expresión2>
<expresión1> >= <expresión2>
Si el resultado de la comparación resulta ser verdadero, se retorna "true", en caso contrario "false". El significado de cada operador es evidente:
> mayor que
< menor que
>= mayor o igual que
<= menor o igual que
En la expresión "E1 <operador> E2", los operandos tienen algunas restricciones, pero de momento nos conformaremos con que E1 y E2 sean de tipo aritmético. El resto de las restricciones las veremos cuando conozcamos los punteros y los objetos.
Cuando decimos que operador es binario no quiere decir que sólo se pueda usar con dos operandos, sino que afecta a dos operandos. Por ejemplo, la línea:
A = 1 + 2 + 3 - 4;
Es perfectamente legal, pero la operación se evaluará tomando los operandos dos a dos y empezando por la izquierda, y el resultado será 2. Además hay que mencionar el hecho de que los operadores tienen diferentes pesos, es decir, se aplican unos antes que otros, al igual que hacemos nosotros, por ejemplo:
A = 4 + 4 / 4;
Dará como resultado 5 y no 2, ya que la operación de división tiene prioridad sobre la suma. Esta propiedad de los operadores es conocida como precedencia. En el capítulo de operadores II se verán las precedencias de cada operador, y cómo se aplican y se eluden estas precedencias.
© Septiembre de 2.000 Salvador Pozo, salvador@c-con-clase.every1.net