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

Estructura if / else en C++
Estructura if / else en C++

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:

// 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()
 {
 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.

 


¿Deseas aprender BIEN Seguridad Informática “desde el principio”? 

Aplicación de medidas para la implantación de la L.O.P.D. en las empresas

Obtendrás información ampliada y más recursos en comparación con el material que ofrecemos de forma gratuita, y material adicional, visita https://ehack.mx/portfolio-view/material-de-estudio-ceh-online/ para más información o ecríbenos a ceh@ehack.mx

Ethical hack
Ethical hack

 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.

 

Licencia Creative Commons
Estructura: If / else en C++ por Roberto C. González se distribuye bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.
Basada en una obra en http://ehack.info/cpp01/.
Permisos que vayan más allá de lo cubierto por esta licencia pueden encontrarse en https://about.me/carlosgbr.

 

Comentarios de Facebook

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *