![]() |
||
ESTRUCTURAS REPETITIVAS LA ITERACION WHILE while(expresion) ó while(expresión) {
proposición 1 ; proposición 1 ;
proposición 2 ;
...............
proposición n ;
}
Esta sintaxis expresada en palabras significaria: mientras (expresión) dé un resultado CIERTO ejecútese la proposición 1 , en el caso de la izquierda ó ejecútese el bloque de sentencias , en el caso de la derecha. LA ITERACION DO - WHILE do {
proposición 1 ;
proposición 2 ;
...............
} while (expresión) ;
Expresado en palabras , esto significa : ejecute las proposiciones , luego repita la ejecución mientras la expresión dé un resultado CIERTO . La diferencia fundamental entre esta iteración y la anterior es que el DO-WHILE se ejecuta siempre AL MENOS una vez , sea cual sea el resultado de expresión. ITERACION FOR for ( expresión1 ; expresión2 ; expresion3 ) {
proposición1 ;
proposición2 ;
..............
}
Esto es equivalente a :
expresión1 ;
while ( expresión2 ) {
proposición1 ;
proposición2 ;
..............
expresion3 ;
}
Ejemplo de un programa for #include<stdio.h> /* Programa para tabular la funcion y = Sen(x) */ main() otro ejemplo: /* Programa para tabular la función y = sen(x) */ main() La expresión1 es una asignación de una ó más variables , (equivale a una inicialización de las mismas ) , la expresión2 es una relación de algun tipo que , mientras dé un valor CIERTO , permite la iteración de la ejecución y expresión3 es otra asignación , que comunmente varía alguna de las variables contenida en expresión2 . for ( ; exp2 ; exp3) ó
for (exp1 ; ; ) ó
for ( ; ; )
Estas dos últimas expresiónes son interesantes desde el punto de vista de su falta de término relacional , lo que implica que el programador deberá haber previsto alguna manera alternativa de salir del lazo ( probablemente mediante BREAK ó RETURN como veremos más adelante ) ya que sinó , la ejecución del mismo es infinita ( ó tan larga como se mantenga encendida la computadora ) . LA SENTENCIA BREAK #include <stdio.h>
#include <conio.h>
main()
{
char c ;
printf("ESTE ES UN LOOP INDEFINIDO ") ;
while(1) {
printf( "DENTRO DEL LOOP INDEFINIDO (apriete una tecla):" ) ;
if( (c = getch()) == 'Q' )
break ;
printf( "nNO FUE LA TECLA CORRECTA PARA ABANDONAR EL LOOP ") ;
}
printf("nTECLA CORRECTA : FIN DEL WHILE ") ;
}
Obsérvese que la expresión while(1) SIEMPRE es cierta , por lo que el programa correrá imparable hasta que el operador oprima la tecla "secreta" Q . Esto se consigue en el IF , ya que cuando c es igual al ASCII Q se ejecuta la instrucción BREAK ,dando por finalizado el WHILE . for (;;) { /* loop indefinido */
............
if( expresión )
break ; /* ruptura del loop cuando expresión sea verdadera */
}
LA SENTENCIA CONTINUE LA FUNCION EXIT() SENTENCIA GOTO if( c == 0 ) goto OTRO_LADO ;
.............................
OTRO_LADO:
printf(........
En este caso si c es cero se saltean todas las sentencias entre el if y el destino , continuandose con la ejecución del printf() . El destino puede ser tanto posterior como anterior al GOTO invocante . |
![]() |