Vous êtes sur la page 1sur 16

UNIDAD III:

ESTRUCTURAS DE FLUJO PROGRAMATICO


3.1.- ESTRUCTURAS DE DECISIN (if, if/else, switch.)
3.2.- ESTRUCTURAS DE ITERACIN (for, while, do / while.) 3.3.- ESTRUCTURAS DE CONTROL (Ruptura de un lazo)

ESTRUCTURAS DE DECISIN (SELECCIN) IF


La sentencia if se le conoce como estructura de seleccin simple y su funcin es realizar o no una determinada accin o sentencia, basndose en el resultado de la evaluacin de una expresin (verdadero o falso), en caso de ser verdadero se ejecuta la sentencia. Las sentencias de seleccin alteran el flujo secuencial de ejecucin de un programa, de tal forma que permiten seleccionar flujos de ejecucin alternativos y excluyentes dependiendo de expresiones lgicas. La ms simple de todas es la sentencia de seleccin condicional if cuya sintaxis es la siguiente: main() { if ( <expresion_logica> ) { <secuencia_de_sentencias> ;} }

IF

/ ELSE

Si fueran varias sentencias a las que se refiere la estructura if se tiene que encerrar todas las sentencias entre llaves { } . La diferencia con utilizar slo la estructura if es que si la expresin evaluada es verdadera slo en ese caso se ejecuta una accin de otro modo se pasa de largo. En cambio en la estructura if / else si la expresin es falsa entonces se ejecuta otra accin. La sentencia de seleccin condicional compuesta, tiene la siguiente sintaxis: main () { if ( <expresion_logica> ) {<secuencia_de_sentencias_v> ; } else {<secuencia_de_sentencias_f> ; } }

if

if else

ESTRUCTURAS CONDICIONALES ANIDADAS


Existe el caso de estructuras if, if/else anidadas, que no es ms que una estructura if o

if/else dentro de otra. Ejemplo: se desea conocer cul es el mayor de tres nmeros A, B ,C. 1: #include <iostream> 2: int main() 3: { 4: int A=0, B=0, C=0; 5: cout<<"Ingrese 3 nmeros"; 6: cin>>A>>B>>C; 7: if ( A > B ) 8: { if (A > C ) 9: cout<<"A es el nmero mayor"; 10: else 11: cout<<"C es el nmero mayor"; 12: } 13: else 14: { if ( B > C ) 15: cout<<"B es el nmero mayor"; 16: else 17: cout<<"C es el nmero mayor"; 18: } 19: }
Suponiendo que los valores ingresados por teclado fueran: A=2, B=1, C=5. .

El programa se ejecuta secuencialmente hasta la lnea 7 donde encuentra una expresin. Cuando se evale la expresin (A > B) lnea 7, el resultado es verdadero (2 > 1), por lo tanto el programa ejecuta la lnea 8, en dicha lnea encuentra otra expresin (A > C) y el resultado de evaluar dicha expresin es falso (2 > 5) por lo que el programa salta hasta la lnea 11 y muestra "C es el nmero mayor". Luego va a la lnea 12 y verifica el cierre de llaves y finalmente salta hasta la lnea 19 siendo la ltima lnea de ejecucin.

Tambien se puede unir condiciones utilizando los operadores logicos and, or y not, por ejemplo si se desea saber si 2 condiciones han cumplido es necesario tener un formato como: if ( matematicas >=60 and quimica>=80 ) { cout << "pasaste ambas materias, felicidades; } Los principales smbolos de comparacin son: < menor a > mayor a != no igual a (diferente) == igual a >= mayor o igual a <= menor o igual a

ESTRUCTURA DE SELECCIN MLTIPLE SWITCH.


La instruccin selectiva mltiple switch, puede manipular una serie de casos (case) y tiene un caso opcional que es el de por defecto (default). Cada case puede ejecutar mltiples lneas de cdigo., permite elegir y ejecutar diferentes cdigos dependiendo de un valor. La forma de escribir la instruccin Switch es :

1) Cuando evaluamos por numero: switch ( lo que queramos evaluar)

{
case 1 : aqui va lo que deber pasar en caso de que haya sido 1 ; break ; case 2 : aqui va lo que deber pasar en caso de que haya sido 2 ; break ; case 3 : aqui va lo que deber pasar en caso de que haya sido 3 ; break ;

}
2) Cuando evaluamos por caracter: switch ( lo que queramos evaluar,) {

case 1 : aqui va lo que deber pasar en caso de que haya sido 1 ; break ;
case 2 : aqui va lo que deber pasar en caso de que haya sido 2 ; break ; case 3 : aqui va lo que deber pasar en caso de que haya sido 3 ; break ; }

La variable que se va a evaluar con el switch, importa al momento de hacerlo. Ya saben: Si van a evaluar por numero: necesitan que la variable sea numrica ( es decir, int / short .. ) Si van a evaluar por caracter: necesitan que la variable sea caracter ( es decir, char ).
Y no olvidarse que cuando se evalua a un char, los casos van con comillas simples ( ) , como vimos en el ejemplo de arriba. Nota: break es una instruccin de bifurcacin, interrumpe el proceso normal de un programa. Por ejemplo en el cdigo de arriba, existe un break en el caso 1, sto har que si el caso 1 fu verdadero se harn las acciones que estn programadas en l y luego saldr del switch porque est el break.

Es sencillo usar sta selectiva mltiple pues nosotros decidimos muy claramente que hacer, si se caso se cumple. El caso opcional que era: default , por lo general siempre se lo pone al final de los casos para que si no encuentra ningn caso; se ejecute l ( osea el default ) y muestre algn mensaje de error haga alguna accin que le hayamos indicado. De sta manera lo colocaramos: switch ( lo que evaluamos ) { case 1 : .. ; break ; case 2 : .. ; break ; default : . ; } El default no necesita llevar break ; al final, puesto que si llegamos a l significa que no se encontr ninguno de los casos y una vez ejecutado lo que tenia que hacer el caso default, terminar la instruccin ( es decir, saldr del switch ) .

//Completar el siguiente Programa main() { short opcion; cout << - Opciones - << endl << 1) Aire << endl << 2) Agua << endl << Seleccione una opcion: ; cin >> opcion; switch ( opcion ) { case 1 : cout << Aire: las aves ; break; case 2 : cout << Agua: los peces ; break; default : cout << Hasta pronto! ; }

ESTRUCTURAS DE ITERACIN (REPETITIVAS) for:


El uso ms frecuente de este tipo de bucles se produce cuando el nmero de repeticiones se conoce por anticipado y la condicin del bucle puede ser controlada por un contador. Ejem: for (n=10; n>0; n=n-2) for ( condicin de inicio ; expresin ; accin despus de cada iteracin ) { sentencia (s); } La condicin de inicio quiere decir que podemos inicializar una variable que vayamos a utilizar dentro el cuerpo de la estructura for. La expresin nos indica que se seguir iterando(repitiendo) mientras la condicin sea verdadera. La accin despus de cada iteracin viene a ser lo que queremos hacer variar despus de cada iteracin, esta variacin podra ser un incremento (o decremento en este caso) en la variable definida en la condicin de inicio.

ESTRUCTURAS DE ITERACIN (REPETITIVAS)


while:
El uso ms frecuente se produce cuando la repeticin del bucle no est controlada por un contador sino por una cierta condicin (simple o compleja). El bucle puede que no se ejecute ninguna vez while (x < 100) x = x + 1; //se incrementara el valor de x mientras x sea menor que 100.
while ( expresin ) { sentencia (s); } 1.Evala la expresin o condicin. 2. Si el resultado de esta evaluacin es verdadero la sentencia o sentencias se ejecutan, es decir, se ejecuta el cuerpo de la estructura. Luego se vuelve a evaluar la expresin. 3. Si el resultado de esta evaluacin es falso no se ejecuta la sentencia o sentencias y sale del ciclo while.

//Que hace este Programa?


#include <iostream> using namespace std; main() { int n=1; while(n <= 10 ) { cout<<"9 * "<<n<<" = "<<n*9; cout<<endl; n++; } system ("pause"); }

ESTRUCTURAS DE ITERACIN (REPETITIVAS)


do-while:
Se utiliza en las mismas condiciones que el while y cuando adems se debe asegurar que el bucle se ejecute al menos una vez, por eso el do . Ejemplo: men de opciones con filtro. La notacin de esta estructura es como sigue: do { sentencias o instrucciones } while ( expresin ); // Las estructura do/while llevan punto y coma al final a diferencia de la estructura while. Ejem: do x = x + 1; while (x < 100); En este bucle se incrementar el valor de x hasta que valga 100. Pero aunque la condicin sea falsa, por ejemplo, si x vale inicialmente 200, la sentencia x = x + 1;, se ejecuta primero, y despus se verifica la condicin.

Expresiones con operadores de igualdad


Cuando se hacen comparaciones entre una constante y una variable, es recomendable poner en primer lugar la constante, por ejemplo: if(123 == a) ... if(a == 123) Si nos equivocamos al escribir estas expresiones, y ponemos slo un signo '=', en el primer caso obtendremos un error del compilador, ya que estaremos intentando cambiar el valor de una constante, lo cual no es posible. En el segundo caso, el valor de la variable cambia, y adems el resultado de evaluar la expresin no depender de una comparacin, sino de una asignacin, y siempre ser "true", salvo que el valor asignado sea 0.

Vous aimerez peut-être aussi