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
ResponderEliminarmuchas gracias es muy buena informacion y me ayuda a entenderlo mejor :D
ResponderEliminar