¿Cómo funcionan los operadores lógicos?
Capítulo 12: El condicional else if y los operadores lógicos
El condicional else if de C++
Con lo que he enseñado en los dos últimos capítulos, ya sabes como añadir condiciones verdaderas y falsas. ¿Qué ocurre si queremos añadir más de una condición verdadera? Para esto, tenemos else if
.
Empecemos con un ejemplo que evalúa la edad introducida por el usuario.
// Declaración de variables
int edad;
// Se pide y almacena la edad del usuario
cout << "Introduce tu edad." << endl;
cin >> edad;
// Se evalúa la edad del usuario
if (edad <= 0) {
cout << edad << " no es una edad válida.";
}
else if (edad >= 1 && edad <=17) {
cout << "Tienes " << edad << ". Eres menor de edad.";
}
else if (edad >= 18 && edad <=150) {
cout << "Con tus " << edad << " años, eres mayor de edad.";
}
else {
cout << "No puedes tener " << edad << " años.";
}
Probemos primero diferentes resultados en la consola y ahora te voy explicando todo.
Si introduzco por ejemplo -10 en la consola, me ejecuta el código del if
:
Introduce tu edad.
0
0 no es una edad válida.
Ahora, introduzco una edad de 15 años:
Introduce tu edad.
15
Tienes 15. Eres menor de edad.
Probemos con por ejemplo, 30 años:
Introduce tu edad.
30
Con tus 30 años, eres mayor de edad.
Finalmente, voy a poner que tengo 170 años:
Introduce tu edad.
170
No puedes tener 170 años.
Los operadores de comparación mayor o menor e igual qué de C++
El operador mayor o igual qué >=
, evalúa si un valor es mayor o igual que el otro.
El operador menor o igual qué <=
, evalúa si un valor es menor o igual que el otro.
El operador lógico && de C++
El operador lógico &&
, llamado como "and" (y en español) lo que hace es comparar que se cumplan ambas condiciones comparadas. Es decir, da true
si ambas comparaciones son true
. En el caso de que una no lo sea, da false
.
Analicemos el código para que puedas entender el uso de estos nuevos operadores.
En la condición del if
(línea 9) se evalúa que el valor de edad
sea menor o igual a 0
. Esto quiere decir que 0 o cualquier valor inferior (números negativos) van a cumplir esta condición (true
).
En la condición del primer else if
(línea 12), tenemos una doble evaluación. Por un lado, le decimos que edad
sea mayor o igual a 1
y que además (&&
), edad
, sea menor o igual a 17
.
Por lo tanto, para que el else if
devuelva true
, edad
debe ser mayor o igual a 1
y que además, sea menor o igual a 17
.
En el segundo else if
especifico que edad
sea mayor o igual a 18
y que además, sea menor o igual a 150
.
Ya sé que 150 es un poco exagerado, pero hay personas que viven más de 100 años. Cuando sepas más, podrás poner una condición extra, que si el usuario pone que tiene entre 100 y 150 años, que se ponga en duda y se le pregunte el año de nacimiento. Si no coincide con la edad, que le de un error.
Finalmente, en la línea 18 tenemos el else
. Este contempla cualquier valor que se salga de los rangos establecidos, es decir, de 151 años para arriba.
Todo esto puede ser un poco complicado al principio. Si te cuesta y quieres una ayuda, puedes dejarme un comentario.
Aclaraciones con los condicionales
- Podemos tener tantas condiciones
else if
como queramos. - Pondremos un solo
if
y unelse
. - El uso de
else
es opcional. if
se puede utilizar de manera individual.- Los nombres de variables se deben repetir cuando hay condiciones múltiples como la del
&&
. Es decir,(edad >= 1 && <=17)
es incorrecto.
El operador lógico or en C++
El operador lógico or ||
devuelve true
siempre que al menos una de las condiciones sea true
. También pueden serlo las dos.
int numero = 10;
if (numero == 20 || numero > 5) {
cout << "Al menos una condición es verdadera.";
}
else {
cout << "Las dos condiciones son falsas.";
}
Devuelve true
porque se cumple la condición de numero > 5
.
Al menos una condición es verdadera.
Probemos con dos condiciones falsas.
int numero = 10;
if (numero == 20 || numero < 5) {
cout << "Al menos una condición es verdadera.";
}
else {
cout << "Las dos condiciones son falsas.";
}
Devuelve false
porque se cumple ninguna condición.
Las dos condiciones son falsas.
El operador lógico de negación
El operador lógico de negación !
se utiliza para comparar cosas que sean todo lo contrario. Queda más entendible con un ejemplo:
int numero = 10;
if (!(numero == 20)) {
cout << "La variable numero no es igual a 20.";
}
else {
cout << "La variable numero es igual a 20.";
}
Con este operador, obtenemos false
de las cosas que obtendríamos true
y viceversa. En el if
se evalúan cualquier número que no sea igual a 20. En el caso de que sea igual a 20, se ejecutará el else.
La variable numero no es igual a 20.
Por cierto, fíjate en que la expresión se tiene que rodear con unos paréntesis extra.
Comentarios
Si te quedan dudas sobre el temario, sobre C++, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.