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++

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.


Ethical Hack

Fuente Imágenes

  • Todas las demás imágenes de esta sección”: by Nala Systems

Código Fuente


Estructura: If / else en C++ by Roberto C. González is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.
eHack Blog

Entradas recientes

dnsenum

El comando dnsenum es una herramienta de línea de comandos para realizar enumeración de DNS…

11 meses hace

Las 24 listas negras de IPv4 más comunes.

En esta entrada te presento 24 de las listas negras más comunes que los servidores…

1 año hace

ZoomIt – SysInternals

ZoomIt es una herramienta de anotación y zoom de pantalla para presentaciones técnicas que incluyen…

2 años hace

WinObj – SysInternals

WinObj es el visor de espacios de nombres de Object Manager definitivo. Es la primera…

2 años hace

WhoIs – SysInternals

Whois realiza el registro de registro para el nombre de dominio o la dirección IP…

2 años hace

VolumeID – SysInternals

VolumeID – Esta utilidad, le permite cambiar los identificadores de los discos FAT y NTFS…

2 años hace