Los operadores lógicos “&&” y “||” son usados en C++ para evaluar dos expresiones, dando como resultado nuevas expresiones lógicas.
El operador “&&” corresponde al booleano AND, lo que en español vendría siendo “y”; y el operador “||” corresponde al booleano OR, lo que sería equivalente a “o”.
Para saber cual de los dos operadores debemos usar es importante primero analizar qué es lo que se busca que el programa haga. Además podemos ayudarnos de las tablas de verdad, las cuales nos indican el resultado que se obtendría al evaluar las dos expresiones.
Uso de ampersand (&&):
En el caso de && el resultado será verdadero, en cualquier otro caso el resultado será falso:
Ejemplos:
x=5
- (x>3) && (x<10) //Ya que el valor de x es 5 ambas expresiones son verdaderas, por lo tanto el resultado tambien lo será
- (x>3) && (x<2) // En este caso solo la primera expresión es verdadera, entonces el resultado será falso
- (x>6) && (x<10) // Ahora la segunda expresión es la que resulta verdadera y el resultado será falso
- (x>6) && (x<2) // Las dos expresiones son falsas así que el resultado también será falso.
Ejemplo en codigo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <iostream> using namespace std; int main(){ int x=5; if((x>3)&&(x<10)){ //Ya que el valor de x es 5 ambas expresiones son verdaderas, la condición se cumple cout<<"La condición: (x>3)&&(x<10) es verdadera"; } if ((x>3) && (x<2)){ // En este caso solo la primera expresión es verdadera, //Entonces el resultado será falso, lo que causara que la condición no se cumple y no aparecera ningún mensaje cout <<"la condición es verdadera"; } if ((x>6) && (x<10) ){ // Ahora la segunda expresión es la que resulta verdadera y el resultado será falso //Como la condición no se cumple no aparecera ningun mensaje cout<<"la condición es verdadera"; } if ((x>6) && (x<2)){ // Las dos expresiones son falsas así que el resultado también será falso. //De nuevo, al no cumplirse la condición no se mostrara ningún mensaje. cout<<"la condición es verdadera"; } //Al finalizar el programa solo se debe mostrar el mensaje una vez return 0; } |
Uso de pipeline (||):
Por otra parte, en el caso de || el resultado será verdadero si al menos una de las dos expresiones es verdadera.
Ejemplos:
x=5
- (x>3) || (x<10) //Ambas expresiones son verdaderas, por lo tanto el resultado será verdadero
- (x>3) || (x<2) // La primera expresión es verdadera, entonces el resultado será verdadero.
- (x>6) || (x<10) // La segunda expresión es verdadera, esto generará un resultado verdadero.
- (x>6) || (x<2) // Ambas expresiones son falsas, lo que dará falso por resultado.
Ejemplo en código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include <iostream> using namespace std; int main(){ int x=5; if((x>3) || (x<10)){ //Ambas expresiones son verdaderas, por lo tanto el resultado será verdadero cout<<"La condición: (x>3) || (x<10) es verdadera"; } if ((x>3) || (x<2)){ // La primera expresión es verdadera, entonces el resultado será verdadero. cout <<"la condición: (x>3) || (x<2) es verdadera"; } if ((x>6) || (x<10) ){ // La segunda expresión es verdadera, esto generará un resultado verdadero. cout<<"la condición: (x>6) || (x<10) es verdadera"; } if ((x>6) || (x<2)){ // Ambas expresiones son falsas, lo que dará falso por resultado. //Al no cumplirse la condición no aparecera ningún mensaje. cout<<"la condición es verdadera"; } //Al finalizar el programa muestra el mensaje 3 veces return 0; } |
Tablas de Verdad
- cplusplus. (s.f.). Operators. Obtenido de Logical operators ( !, &&, || ): http://www.cplusplus.com/doc/tutorial/operators/
- Pozo, S. (2009). Operadores lógicos. Obtenido de http://c.conclase.net/curso/?cap=004c