Requisitos:
Con frecuencia queremos comprobar que dos condiciones se cumplan para ejecutar una instrucción. Por ejemplo si queremos comprobar si el usuario pertenece a la Generacion Z tenemos que comprobar que haya nacido entre el año 1990 y el año 2010.
#include <iostream>
using namespace std;
int main() {
int anio_nacimiento;
cin >> anio_nacimiento;
if (anio_nacimiento >= 1990) {
if (anio_nacimiento < 2010) {
cout << "Eres posmilenial";
} else {
cout << "No eres posmilenial";
}
} else {
cout << "No eres posmilenial";
}
}
Parece demasiado complejo para una idea tan sencilla. Y por supuesto que lo es, podemos simplificarlo:
#include <iostream>
using namespace std;
int main() {
int anio_nacimiento;
cin >> anio_nacimiento;
if (anio_nacimiento >= 1990 and anio_nacimiento < 2010) {
cout << "Eres posmilenial";
} else {
cout << "No eres posmilenial";
}
}
Vemos que empleando “and” (también se puede usar “&&” que es exactamente equivalente) podemos unir dos o más condiciones y el if solo entrará si todas las condiciones son correctas.
Podemos usar “or” (o “||” que es exactamente equivalente) para unir condiciones donde nos basta con que una de ellas se cumpla para entrar en el if:
#include <iostream>
using namespace std;
int main() {
string nombre;
cin >> nombre;
if (nombre == "Santiago" or nombre == "Yago" or nombre == "Jaime" or nombre == "Diego" or nombre == "Jacobo") {
cout << "Tu santo es el 25 de julio";
}
}
Veamos otro ejemplo:
int edad;
cin >> edad;
if (edad >= 16 and edad < 70) {
cout << "Legalmente estas en edad de trabajar";
}
Es importante que veas que a los dos lados del and y del or siempre debe haber una comparación (completa), es decir, no podemos poner "if (edad >= 16 and < 70)" porque a la derecha del and no hay una comparación completa.
También podemos utilizar la exclamación (“!”) para obtener el resultado contrario, por ejemplo:
if (!(edad >= 16 and edad < 70)) {
cout << "Legalmente no tienes facil poder trabajar";
}
Debe ponerse después de la exclamación entre paréntesis todo aquello que queramos “negar” (es decir, todo aquella que queremos que sea lo contrario).
Y por supuesto podemos combinar and’s i or’s, aunque es recomendable usar paréntesis para dejar claro en qué orden queremos que se hagan las comprobaciones:
if ((edad < 2) or (edad >= 13 and edad < 18)) {
cout << "Tu hijo esta en una edad complicada, paciencia";
}
Añadir nuevo comentario