Estructura: If / else en C++
`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 }
(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.
Fuente Imágenes
- Todas las demás imágenes de esta sección”: by Nala Systems
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++ by Roberto C. González is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.