Decíamos que una condición estaba compuesta por una o varias expresiones lógicas, pero que por simplificar la estructura suponíamos que una condición estaba compuesta por una sola expresión lógica.


Realmente las condiciones pueden tener cualquier número de expresiones lógicas cuyo valor seguirá siendo verdadero o falso. A continuación citamos algunas condiciones con varias expresiones lógicas.


· (sexo="hombre" o sexo="varón")Esta es una condición compuesta por dos expresiones lógicas. Están unidas por el operador lógico o. Esta expresión será verdadera si en la variable sexo está almacenado el valor "hombre" o el valor "varón".


· (edad=18 y estatura=1.60)Esta condición está compuesta por dos expresiones lógicas; pero a diferencia de la anterior para que ésta sea verdadera se debe cumplir que el contenido de la variable edad sea igual a 18 y además que el contenido de la variable estatura sea 1.60, si alguna de estas variables no tiene estos valores, entonces la condición será falsa.


Para unir expresiones lógicas se utilizan los operadores lógicos "and", "or", "not", "xor",.... No obstante en este capítulo solamente estudiaremos los operadores lógicos "and", "or" y "not" (en castellano también se denominan "y", "o" y "no".


El operador lógico and une dos expresiones formando una nueva condición (o si se prefiere una nueva expresión). La condición resultante es "verdadera" si las expresiones que la componen (en este caso dos) tienen el valor "verdadero". A continuación se expresa una tabla donde se puede ver el resultado de la condición en función de la evaluación de las expresiones que la componen.


operador and
condición.
valor de expr1
valor de expr2
valor de la condición
expr1 and expr2
Falso
Falso
Falso
expr1 and expr2
Falso
Verdadero
Falso
expr1 and expr2
Verdadero
Falso
Falso
expr1 and expr2
Verdadero
Verdadero
Verdadero


Interpretación de la tabla: si en la condición (expr1 and expr2) (1ª columna) tenemos que expr1 ="verdadero" (2ª columna) y que expr2="falso" (3ª columna) entonces el valor de la condición (expr1 and expr2) será "falso" (4ª columna).


Lo mismo se aplica para condiciones compuestas por más de dos expresiones unidas por el operador and; por ejemplo, para que la condición: (expr1 and expr2 and expr3 and expr4) sea verdadera todas las expresiones que la componen deben ser verdaderas.


El operador lógico "or" expresa que para que la condición sea verdadera al menos debe ser verdadera alguna de las expresiones que componen la condición. La siguiente tabla expresa esta situación.


operador or
condición.
valor de expr1
valor de expr2
valor de la condición
expr1 or expr2
Falso
Falso
Falso
expr1 or expr2
Falso
Verdadero
Verdadero
expr1 or expr2
Verdadero
Falso
Verdadero
expr1 or expr2
Verdadero
Verdadero
Verdadero


Como se puede observar en la tabla, para que la condición sea verdadera se debe cumplir que al menos una de las expresiones sea verdadera. Esto se aplica a cualquier condición con más de dos expresiones, por ejemplo la condición: (expr1 or expr2 or expr3 or expr4) es verdadera si al menos una de las expresiones es verdadera.


El operador lógico not es el más sencillo; lo único que hace es poner el valor contrario al que tuviese la expresión. La siguiente tabla muestra cómo actúa este operador.


operador not. Condición
valor de expr1
valor de la condición
not expr1
Falso
Verdadero
not expr1
Verdadero
Falso



Las condiciones también pueden tener expresiones con combinaciones de los operadores expresados anteriormente, en ese caso se recomienda el uso de paréntesis para expresar qué conjunto de expresiones se evalúa primero. Por ejemplo, en la condición:


((expr1 and expr2) or expr3)


Primeramente se evalúa (expr1 and expr2) y el resultado de ésta se evalúa con expr3. Si en la condición no existen paréntesis, entonces aplicamos un orden de prioridad a operadores lógicos, el orden es el siguiente:


- Primero, se evalúan las expresiones con el operador not.


- Segundo, se evalúan las expresiones con el operador and.


- Tercero, se evalúan las expresiones con el operador or.


A continuación se expresan varias condiciones con el camino a seguir para su evaluación:


Condición:(expr1 or expr2 and expr3)


Evaluación:


Supongamos que: expr1 = "verdadero", expr2 = "falso" y expr3 = "verdadero", entonces la evaluación es la siguiente:


1.- se realiza (expr2 and expr3) cuyo resultado es falso


2.- se realiza la operación lógica: expr1 con el resultado de la evaluación anterior, si sustituimos, tenemos la condición (expr1 or falso). Como expr1="verdadero", entonces el valor de la condición (expr1 or falso) es verdadero.



Condición:(expr1 and not expr2 or expr3 and expr4)


Evaluación:


Supongamos que expr1 = "falso", expr2 = "verdadero", expr3 = "verdadero" y expr4 = "verdadero", entonces la evaluación es la siguiente:


1.- se halla el valor de not expr2. Como expr2 = "verdadero" el resultado de (not expr2) es falso.


2.- ahora se debe hallar la expresión cuyo operador lógico es and. En esta expresión hay dos operadores lógicos and; así pues se debe comenzar por el and que este más a la izquierda. Así pues evaluamos expr1 and (not expr2) como el valor de (not expr2) es falso entonces tendremos que evaluar la expresión (expr1 and falso) cuyo resultado es falso.


3.- evaluamos la expresión (expr3 and expr4) cuyo resultado es verdadero.


4.- Finalmente evaluamos ((expr1 and not expr2) or (expr3 and expr4)). La expresión que está a la izquierda del operador or es el paso 2 cuyo resultado es falso; la condición de la derecha del operador or es el paso 3 cuyo resultado es verdadero. Así sustituyendo las expresiones por sus valores tenemos que (falso or verdadero) cuyo resultado es verdadero. Por tanto la condición es verdadera.


Recuerda que: Existen una serie de operadores lógicos que nos permiten realizar operaciones con expresiones lógicas. El valor de estas operaciones sigue siendo verdadero o falso.

Decíamos que una condición estaba compuesta por una o varias expresiones lógicas, pero que por simplificar la estructura suponíamos que una condición estaba compuesta por una sola expresión lógica.
Realmente las condiciones pueden tener cualquier número de expresiones lógicas cuyo valor seguirá siendo verdadero o falso. A continuación citamos algunas condiciones con varias expresiones lógicas.
· (sexo="hombre" o sexo="varón")Esta es una condición compuesta por dos expresiones lógicas. Están unidas por el operador lógico o. Esta expresión será verdadera si en la variable sexo está almacenado el valor "hombre" o el valor "varón".
· (edad=18 y estatura=1.60)Esta condición está compuesta por dos expresiones lógicas; pero a diferencia de la anterior para que ésta sea verdadera se debe cumplir que el contenido de la variable edad sea igual a 18 y además que el contenido de la variable estatura sea 1.60, si alguna de estas variables no tiene estos valores, entonces la condición será falsa.
Para unir expresiones lógicas se utilizan los operadores lógicos "and", "or", "not", "xor",.... No obstante en este capítulo solamente estudiaremos los operadores lógicos "and", "or" y "not" (en castellano también se denominan "y", "o" y "no".
El operador lógico and une dos expresiones formando una nueva condición (o si se prefiere una nueva expresión). La condición resultante es "verdadera" si las expresiones que la componen (en este caso dos) tienen el valor "verdadero". A continuación se expresa una tabla donde se puede ver el resultado de la condición en función de la evaluación de las expresiones que la componen.
operador and
condición.
valor de expr1
valor de expr2
valor de la condición
expr1 and expr2
Falso
Falso
Falso
expr1 and expr2
Falso
Verdadero
Falso
expr1 and expr2
Verdadero
Falso
Falso
expr1 and expr2
Verdadero
Verdadero
Verdadero
Interpretación de la tabla: si en la condición (expr1 and expr2) (1ª columna) tenemos que expr1 ="verdadero" (2ª columna) y que expr2="falso" (3ª columna) entonces el valor de la condición (expr1 and expr2) será "falso" (4ª columna).
Lo mismo se aplica para condiciones compuestas por más de dos expresiones unidas por el operador and; por ejemplo, para que la condición: (expr1 and expr2 and expr3 and expr4) sea verdadera todas las expresiones que la componen deben ser verdaderas.
El operador lógico "or" expresa que para que la condición sea verdadera al menos debe ser verdadera alguna de las expresiones que componen la condición. La siguiente tabla expresa esta situación.
operador or
condición.
valor de expr1
valor de expr2
valor de la condición
expr1 or expr2
Falso
Falso
Falso
expr1 or expr2
Falso
Verdadero
Verdadero
expr1 or expr2
Verdadero
Falso
Verdadero
expr1 or expr2
Verdadero
Verdadero
Verdadero
Como se puede observar en la tabla, para que la condición sea verdadera se debe cumplir que al menos una de las expresiones sea verdadera. Esto se aplica a cualquier condición con más de dos expresiones, por ejemplo la condición: (expr1 or expr2 or expr3 or expr4) es verdadera si al menos una de las expresiones es verdadera.
El operador lógico not es el más sencillo; lo único que hace es poner el valor contrario al que tuviese la expresión. La siguiente tabla muestra cómo actúa este operador.
operador not. Condición
valor de expr1
valor de la condición
not expr1
Falso
Verdadero
not expr1
Verdadero
Falso
Las condiciones también pueden tener expresiones con combinaciones de los operadores expresados anteriormente, en ese caso se recomienda el uso de paréntesis para expresar qué conjunto de expresiones se evalúa primero. Por ejemplo, en la condición:
((expr1 and expr2) or expr3)
Primeramente se evalúa (expr1 and expr2) y el resultado de ésta se evalúa con expr3. Si en la condición no existen paréntesis, entonces aplicamos un orden de prioridad a operadores lógicos, el orden es el siguiente:
- Primero, se evalúan las expresiones con el operador not.
- Segundo, se evalúan las expresiones con el operador and.
- Tercero, se evalúan las expresiones con el operador or.
A continuación se expresan varias condiciones con el camino a seguir para su evaluación:
Condición:(expr1 or expr2 and expr3)
Evaluación:
Supongamos que: expr1 = "verdadero", expr2 = "falso" y expr3 = "verdadero", entonces la evaluación es la siguiente:
1.- se realiza (expr2 and expr3) cuyo resultado es falso
2.- se realiza la operación lógica: expr1 con el resultado de la evaluación anterior, si sustituimos, tenemos la condición (expr1 or falso). Como expr1="verdadero", entonces el valor de la condición (expr1 or falso) es verdadero.
Condición:(expr1 and not expr2 or expr3 and expr4)
Evaluación:
Supongamos que expr1 = "falso", expr2 = "verdadero", expr3 = "verdadero" y expr4 = "verdadero", entonces la evaluación es la siguiente:
1.- se halla el valor de not expr2. Como expr2 = "verdadero" el resultado de (not expr2) es falso.
2.- ahora se debe hallar la expresión cuyo operador lógico es and. En esta expresión hay dos operadores lógicos and; así pues se debe comenzar por el and que este más a la izquierda. Así pues evaluamos expr1 and (not expr2) como el valor de (not expr2) es falso entonces tendremos que evaluar la expresión (expr1 and falso) cuyo resultado es falso.
3.- evaluamos la expresión (expr3 and expr4) cuyo resultado es verdadero.
4.- Finalmente evaluamos ((expr1 and not expr2) or (expr3 and expr4)). La expresión que está a la izquierda del operador or es el paso 2 cuyo resultado es falso; la condición de la derecha del operador or es el paso 3 cuyo resultado es verdadero. Así sustituyendo las expresiones por sus valores tenemos que (falso or verdadero) cuyo resultado es verdadero. Por tanto la condición es verdadera.
Recuerda que: Existen una serie de operadores lógicos que nos permiten realizar operaciones con expresiones lógicas. El valor de estas operaciones sigue siendo verdadero o falso.