11. C++ || Sentencia if
Con esta entrada cerraremos el apartado de las sentencia if en C++, culminaremos con dos conceptos muy importantes.
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:
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++.
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.
- Sentencias if-else anidadas
- 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.
Buena la información gracias
ResponderEliminar