Sentencias de selección
Al programar debemos evitar un abuso en las estructuras de control, procurando lograr rapidez y sencillez, por ello es importante tener presente la funcionalidad de cada estructura o sentencia. A continuación te explico cada una y si tienes cualquier duda déjala en los mentarios
Estructuras
Al programar debemos evitar un abuso en las estructuras de control, procurando lograr rapidez y sencillez, por ello es importante tener presente la funcionalidad de cada estructura o sentencia. A continuación te explico cada una y si tienes cualquier duda déjala en los mentarios
Sentencias de iteración o bucles
Las sentencias de iteración se emplean cuando queremos repetir la ejecución de sentencias hasta que se cumpla una condición o varias condiciones. El flujo de ejecución esta iterando (en roma de bucle) hasta que lo determine la expresión lógica y salga del bucle.
Una ejecución de algo complejo puede resolverse por medio de pasos simples, por ello es recomendable dominar el diseño de los bucles o estructuras de iteración. Las sentencias para los bucles son 3: while, for y do-while.
Sentencias while
Comienza evaluando la expresión lógica, si es falsa el cuerpo del bucle no se ejecuta y el flujo de ejecución pasa directamente a las instrucciones que sigan a la sentencia while, en caso de ser cierta se ejecuta el cuerpo del bucle y vuelve a evaluar la expresión lógica, esto será iterativo mientras el resultado de la expresión lógica no cambie a falso. El esquema while es el siguiente:
while ( <expresión_lógica> ) {
<secuencia_de_sentencias> ;
}
salida de datos obtenidos en la sentencia while
En C++ un ejemplo seria:
#include <iostream>
using namespace std;
int main ()
{
int num ;
cout << "Tecle un número par: " ;
cin >> num ;
while ((num % 2) != 0){
cout << "Tecle un número par: " ;
cin >> num ;
}
cout << "El número par es " << num << endl ;
}
Para que un bucle se ejecute hasta que cumpla lo que deseamos debemos tener cuidado al expresar las sentencias ya que de lo contrario podríamos caer en un bucle infinito.
Sentencia for
Para la utilización de la estructura for es necesario que el bucle quede definido claramente en 3 componentes: inicialización, condición de fin e incremento.
Para las situaciones en que deseamos realizar un dulce de forma previsible, podemos utilizar una variable de control denomina for. La iteración controlada por los valores de una variable determinada hace clara la inicialización y claro su incremento de la variable control hasta llegar al final. La estructura for sigue el siguiente esquema:
for ( <inicialización> ; <expresión_lógica> ; <incremento> ) {
<secuencia_de_sentencias> ;
}
#include <iostream>
using namespace std ;
int main ()
{
int n ;
cin >> n ;
for (int i = 0 ; i < n ; ++i) {
cout << i << " " ;
}
// i NO es visible aquí
cout << endl ;
}
Sentencia do -While
La sentencia do-while ejecuta primero la secuencia de sentencias y posteriormente evalúa la expresión lógica y si es cierta repite el proceso hasta que la expresión lógica sea falsa. Si al evaluar la expresión lógica esta resulta falsa avanza con las siguientes sentencias.
La sentencia do while hace que por lo menos se ejecute una vez el cuerpo del bucle. La sentencia do- while tiene la siguiente estructura:
do {
<secuencia_de_sentencias> ;
} while ( <expresión_lógica> ) ;
En C++ un ejemplo sería:
#include <iostream>
using namespace std;
int main ()
{
int num ; do {
cout << "Tecle un número par: " ;
cin >> num ;
} while ((num % 2) != 0) ;
cout << "El número par es " << num << endl ;
}
Sentencia switch
La sentencia switch permite mayor claridad, ya que ella secuencia de sentencias alternativas se decide en función del valor que tome determinada expresión. La sententencia switch tiene el siguiente formato:
switch ( <expresión> ) { case <valor_cte_1>:
<secuencia_de_sentencias_1> ;
break ;
case <valor_cte_2>: case <valor_cte_3>:
<secuencia_de_sentencias_2> ;
break ;
case <valor_cte_4>:
<secuencia_de_sentencias_3> ;
break ; ...
default: <secuencia_de_sentencias_d> ; break ;
}
La sentencia brake siempre se utiliza para finalizar una sentencia ejecutada e indica que saldremos de las opciones de switch.
Cuando nos cumple ninguna de las opciones de switch se emplea la sentencia default.
Sentencia if
Este tipo es el mas sencillo de utilizar solo se usa una sentencia de selección condicional compuesta, la cual se ejecuta una vez evaluando la expresión lógica, si su resultado es verdadero entonces se ejecuta la secuencia de sentencias verdaderas pero si al evaluar el resultado de falso se ejecutan las sentencias falsas:
if ( <expresión_lógica> ) {
<secuencia_de_sentencias_v> ;
} else { <secuencia_de_sentencias_f> ;
}
Cuando se requiere ejecutar solamente las acciones verdaderas, se omite else
if ( <expresión_lógica> ) { <secuencia_de_sentencias> ;
}
Cuando se desea seleccionar varias alternativas, se pueden encadenar varias sentencias de selección
if ( <expresión_lógica_1> ) { <secuencia_de_sentencias_v1> ;
} else if ( <expresión_lógica_2> ){ <secuencia_de_sentencias_v2> ;
} else if ...
... } else {
<secuencia_de_sentencias_f> ; }
En C++ quedaria asi:
#include <iostream>
using namespace std ;
int main ()
{
double nota ;
cin >> nota ;
if ( ! ((nota >= 0.0) && (nota <= 10.0))) {
cout << "Error: 0 <= n <= 10" << endl ;
} else if (nota >= 9.5) {
cout << "Matrícula de Honor" << endl ;
} else if (nota >= 9.0) {
cout << "Sobresaliente" << endl ;
} else if (nota >= 7.0) {
cout << "Notable" << endl ;
} else if (nota >= 5.0) {
cout << "Aprobado" << endl ;
} else {
cout << "Suspenso" << endl ;
} }
Sentencias de selección
Este tipo de instrucciones nos permite seleccionar entre 2 o mas opciones. Estas opciones son expresadas mediten sentencias de selección que permiten elegir el comportamiento adecuado en función a un resultado deseado. El valor resultante al evaluar la expresión lógica es verdadero o falso, en base a esto seleccionamos el bloque o sentencias a ejecutar descartando el otro posible camino de sentencias.
Dentro de estas incluimos la sentencia if y la sentencia switch