`Anteriormente revisamos la instrucción if, con la cual podemos realizar decisiones simples en el flujo del programa, normalmente una decisión requiere controlar el caso en que sea verdadera y el caso cuando sea falsa, if solo permite controlar el caso verdadero, si queremos controlar el caso falso requerimos 2 sentencias if, por ejemplo:
// if2.cpp // Uso de If para controlar las posibilidades verdadero / falso // de una condición // 2017, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.onlinegdb.com/online_c++_compiler #include <iostream> using namespace std; int main() { int edad; cout << "Escribe cuántos años tienes: "; cin >> edad; //Indica si el usuario es mayor de edad if (edad >= 18) { cout << "Puedes pasar"; } //Indica si el usuario es mayor de edad if (edad < 18) { cout << "Acceso denegado, eres menor de edad"; } return 0; }
Aunque funcional, C++ nos ofrece una estructura de control complementaria que simplifica la programación en estos casos.
If / else
La sentencia if / else controla las 2 posibilidades de una decisión, if ejecuta las instrucciones cuando la condición es verdadera, y else ejecuta las instrucciones para el caso en que la condición es falsa.
La sintaxis de la estructura if / else es la siguiente:
if (condición) {
//Instrucciones cuando la condición es verdadera
} else {
//Instrucciones cuando la condición es falsa
}
En donde,
- (condición), es una expresión que da como resultado un valor lógico (verdadero, falso), los paréntesis agrupando a la condición son obligatorios.
- { }, las llaves indican el alcance de la expresión de if y de la expresión else, respectivamente, son necesarias a menos que la instrucción esté formada solo por una sentencia.
- //sentencias, las instrucciones que corresponden a la primera parte se ejecutarán si la condición es verdadera. Si la condición es falsa se ejecutarán las instrucciones que se encuentran enseguida del else.
Reescribiendo el programa anterior utilizando if / else queda de la siguiente forma:
// ifelse.cpp // Uso de If / else // 2017, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.onlinegdb.com/online_c++_compiler #include <iostream> using namespace std; int main() { int edad; cout << "Escribe cuántos años tienes: "; cin >> edad; //Indica si el usuario es mayor de edad if (edad >= 18) { cout << "Puedes pasar"; } else { cout << "Acceso denegado, eres menor de edad"; } return 0; }
Como puedes apreciar, éste código es bastante más eficiente y claro de leer. Dependiendo del valor de la condición, solo una de las 2 bifurcaciones se ejecutará
Al igual que la sentencia If, If / else es el mecanismo más simple que existe para hacer validaciones, tomar decisiones y dotar de cierta «inteligencia» a un programa, dependiendo de una entrada. A continuación se presenta un ejemplo típico con estructuras if / else
// ifpromedio.cpp // Se ilustra la toma desición a partir de un promedio determinado utilizando // la sentencia if / else // 2017, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.onlinegdb.com/online_c++_compiler #include <iostream> using namespace std; int main() { //const minima = 6; //const exento = 9; float primero, segundo, tercero, cuarto; float promedio; cout << "Este programa te permite obtener el promedio de calificaciones de un" << endl; cout << "alumno, y determinar si está reprobado, aprobado o exento." << endl << endl; cout << "Escribe las calificaciones conforme se te indique, pulsa ENTER para aceptar" << endl; cout << "Primer periodo: "; cin >> primero; cout << "Segundo periodo: "; cin >> segundo; cout << "Tercer periodo: "; cin >> tercero; cout << "Cuarto periodo: "; cin >> cuarto; promedio = (primero + segundo + tercero + cuarto)/4; cout << "Tu promedio global es: " << promedio << endl; //Determinamos el estatus del alumno de acuerdo al promedio. if (promedio < 7) { cout << "Estás reprobado" << endl; } else { cout << "Estás aprobado, felicidades" << endl; } return 0; }
Otras de los usos típicos de las condiciones es en la validación de entradas, por ejemplo al escribir una contraseña:
// ifelsepwd.cpp // Uso de If / else // 2017, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.onlinegdb.com/online_c++_compiler #include <iostream> using namespace std; int main() { const int pwd = 1234; //contraseña válida de Acceso const string tel = "5658-1111"; int pwdusr; cout << "Para poder mostrar el teléfono debes escribir la contraseña correcta" << endl; cout << "A continuación escribe la contraseña de acceso." << endl; cin >> pwdusr; if (pwdusr == pwd) { cout << "*** Contraseña correcta ***" << endl;; cout << "El teléfono del contacto es: " << tel << ", úsalo con criterio"; } else { cout << "Contraseña errónea \b\b\b" << endl; cout << "Por seguridad, la información se ha eliminado"; } return 0; }
En resumen, siempre que requieras validar una entrada, o tomar una decisión a partir de una comparación la estructura de control if / else es la primera opción que podemos considerar.
Si tienes alguna duda que no se responde en este documento, por favor plantea tu pregunta para poder responderte. O escribe directamente a soporte@ehack.mx
Referencias
- Por Roberto C. González para Ethical Hack
Fuente Imágenes
- «Todas las imágenes de esta sección»: by Nala Systems
Tutorial de C++ by eHack
- Volver al índice de temas del Tutorial de C++
- *** Durante todo este tutorial se repetirá: Este es un curso orientado a gente que nunca ha programado, incluso a gente ajena a la informática. Por esta razón el desarrollo puede parecer lento en ciertas etapas. Prefiero ser claro paso a paso, que hacer «pasos mágicos» como suele ocurrir cuando se enseña programación. *** También es buena idea leas esta entrada si te preguntas «Por qué C++»
Código Fuente
- El código fuente de toda la serie lo puedes descargar en nuestro repositorio en github busca los programas con el nombre del encabezado de cada programa.
- Código de esta sección
Estructura: If / else en C++, por Roberto C. González. Se distribuye bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.
©2025, Ethical Hack, Todos los derechos reservados sobre el contenido propio.