11. C++ || Sentencia if

Con esta entrada cerraremos el apartado de las sentencia if en C++, culminaremos con dos conceptos muy importantes.

  1. Sentencias if-else anidadas
  2. SangrĆ­a en las sentencias if anidadas





Sentencias if-else anidadas


Hasta ahora hemos visto las sentencias if con una o dos alternativas pero, ¿quĆ© ocurre si queremos mĆ”s de una opción? ¿Cómo podrĆ­amos hacerlo? De eso va esta entrada, cuando anidamos una sentencia if, lo que hacemos es crear mĆŗltiples alternativas ya que de un if principal, podrĆ”n haber tantos if sean necesarios internamente.

Imagina una caja grande, esa caja es el if principal y dentro de ella habrƔn mƔs cajitas, estƔs cajitas son los if internos del if principal. La sintaxis es:

if (condición) // if principal
{ //sentencia1... }
else if (condición)
{ //sentencia2... }
.
.
.
else if (condición_n)
{ // sentencia_n... }
else
{ // sentencia_m... }

¿Algo enredado? Ni tanto. La primera sentencia if, es el if principal y en Ć©l se encierra todas las sentencias if que le siguen, en la entrada anterior se dijo que despuĆ©s de la palabra reservada else no se colocaba una condición, ¿recuerdan? Si se hace esto entonces se producirĆ” un error al momento de la compilación, por eso, deben notar que la condición esta despuĆ©s de un if. Vamos a verlo de esta manera:

Si la primera condición no se cumple, entonces, creamos otra condición donde si esa no se cumple, entonces, se crea otra condición que también, si no se cumple, se crea otra condición y esta última si no se cumple, se realizan las acciones del último bloque else. Puede haber tantos if anidados sean necesarios, sólo debes tener en cuenta que para que exista un else, primero debe haber un if. Por ejemplo, el ejemplo de la entrada anterior, se puede modificar y escribir de la siguiente manera:

#include <iostream> //  necesarios para el cin y cout 
using namespace std; 

int main () 
{ 
int edad;  //declaración de la variable edad 
cout << "Ingrese su edad"<<endl; 
cin>> edad; 

if (edad < 12)  // inicio de la sentencia if 
{ cout<<"Primaria"<< endl; } 
else if (edad < 18) 
{ cout<<"Bachillerato"<< endl; } 
else if (edad < 23) 
{ cout<<"Universitario"<< endl; } 
else if (edad < 60) 
{ cout<<"Trabajador"<< endl; } 
else  
{ cout<<"Jubilado"<< endl; } 

return 0; 
} 

Como pueden ver, primero se ejecuta el primer if y se evalúa su condición, si es menor que 12, saldrÔ el siguiente mensaje en pantalla:

Primaria

Si no es menor que doce, entonces entra en juego otra sentencia if donde se evalúa la condición (edad < 18) si es verdad, se ejecuta su bloque de acciones, si no lo es, entonces se evalúa la condición siguiente y así hasta llegar al último else.

Nota: escribir el if-else anidado darƔ mƔs eficiencia en nuestros programas C++.

SangrĆ­a en las sentencias if anidadas


Este es un apartado muy importante ya que ofrece mejor legibilidad del programa, facilita el mantenimiento y con esto, crea que otras personas puedan entender tu código con mayor facilidad, lo que habría que hacer es dejar sangría al comienzo de cada sentencia interna, para aclarar esto vamos a hacerlo con el ejemplo anterior.

#include <iostream> //  necesarios para el cin y cout 
using namespace std; 

int main () 
{ 
int edad;  //declaración de la variable edad 
cout << "Ingrese su edad"<<endl; 
cin>> edad; 

if (edad < 12)  // inicio de la sentencia if 
   { cout<<"Primaria"<< endl; } 
 else if (edad < 18) 
    { cout<<"Bachillerato"<< endl; } 
  else if (edad < 23) 
     { cout<<"Universitario"<< endl; } 
   else if (edad < 60) 
      { cout<<"Trabajador"<< endl; } 
    else  
       { cout<<"Jubilado"<< endl; } 


return 0; 
}
Se harĆ­a de esta manera en forma de escalera, debo aclarar que esto no es obligatorio, se trata de gusto y comodidad, ¿quĆ© forma te pareció mejor, la del primer ejemplo o la del segundo con las sangrĆ­as? Toma la que tĆŗ prefieras para programar en C++ y cualquier otro lenguaje de programación.


1 comentario: