Está en la página 1de 4

Estructuras Cíclicas(Mientras) CICLO WHILE EN C

Ciclos Infinitos o indeterminados


La estructura de repetición Mientras, ejecuta la(s) Funcionamiento:
acción(es) según la condición de evaluación sea 1. Se evalúa la condición del bucle.
2. Si la condición del bucle es verdadera
verdadera (distinto de cero), de no ser así (distinto de 0):
continua con la siguiente acción fuera del ciclo. a. Se ejecutan las sentencias que se
Este tipo de estructura permite la ejecución del hallan dentro del cuerpo del bucle.
b. Vuelve el control al paso 1.
ciclo a través de una variable centinela que al 3. Si la condición del bucle es falsa, el
cambiar su estado permite salir del ciclo. control se transfiere a la secuencia
siguiente al bucle.
Formato :
Sintaxis:

Mientras condición Hacer while condición { MIENTRAS(expresión_logica)HAGA


secuencia
FIN_MIENTRAS

acción(es) acción(es) while (expresion_logica) {


secuencia
}
}

CICLO WHILE EN C CICLO WHILE EN C


MIENTRAS(expresión_logica)HACER
secuencia
Ejemplo 1 (Uso sencillo de un bucle Ejemplo 1 (Uso sencillo de un bucle
while): while (expresion_logica) { while):
FinMientras
secuencia
Realizar un programa que imprima los }
Realizar un programa que imprima los
números desde el 1 hasta el 5. números desde el 1 hasta el 5.

•1
CICLO WHILE EN C CICLO WHILE EN C
• Un bucle while se puede ejecutar siempre si su condición nunca se hace falsa (falta de actualización de
la variable de control). • Un bucle no se ejecuta nunca si cuando se alcanza el while por primera vez la prueba o condición de
repetición no se cumple, es decir si esta es falsa (0 en C).
while (1) { while (i > 0) { while (4>3) {
printf(“Infinito! \n”); printf(“Infinito! \n”); printf(“Infinito! \n”);
} } }
printf(" Fin"); while (4) {
printf("Infinito ! n");
}
while (0) { i = -1; printf(" !!!!! Fin");
printf("Infinito ! n"); while (i > 0) {
} printf("Infinito ! n");
printf(" !!!!! Fin"); ;
}
printf(" !!!!! Fin");

Para romper la ejecución de un


programa presione las teclas
CTRL + C

FORMAS DE CONTROLAR BUCLES WHILE FORMAS DE CONTROLAR BUCLES WHILE (2)


• Bucles controlados por centinelas: Normalmente cuando no se conocen con exactitud cuantas • Bucles controlados por indicadores (banderas): Una bandera es una variable entera que puede
veces se ejecutara un ciclo se hace necesario el uso de una valor centinela. tomar dos posibles valores (0: falso o 1: verdadero). Un bucle controlado por bandera-indicador se
• Un valor centinela es un valor que no se procesa como dato y es empleado para terminar el bucle. ejecuta hasta que se produce un suceso anticipado y se cambia el valor del indicador.

Sigue el siguiente modelo:


1. Establecer el indicador de control del bucle a falso (0) o verdadero (1) con el fin de que se
ejecute el while la primera vez (Normalmente se suele inicializar a falso).
2. Mientas la condición de control del bucle sea verdadera:
a. Realizar las sentencias del cuerpo del bucle.
b. Cuando se produzca la condición de salida se cambia el valor de la variable indicador o
bandera, con el objeto de que entonces la condición de control se haga falsa y, por lo tanto el
bucle se termina.
3. Ejecución de las sentencias siguientes al bucle.

•2
FORMAS DE CONTROLAR BUCLES WHILE (3)
• Para evitar el problema de asociado al valor del dato centinela se puede hacer uso de otra variable (que
RUPTURA DE CICLOS WHILE
no tenga que ver nada con los datos a procesar) para controlar la ejecución del bucle. En otras palabras La sentencia break es comúnmente para realizar la terminación anormal de un ciclo.
usar una bandera.

int clave = -9;


while (condicion) { int entrada;
if(condicion2) { while (scanf(“%d”,&entrada)) {
break; if(entrada != clave)
} printf(“%d”,entrada);
} else
break;
}

El uso de un break en un bucle no es muy recomendable ya que puede hacer difícil la comprensión del
comportamiento del programa.

int clave = -9;


int entrada;
while (scanf(“%d”,&entrada) && (entrada != clave)) {
printf(“%d”,entrada);
}

Estructuras Cíclicas(Mientras) Estructuras Cíclicas(Mientras)


Ejemplo

Inicio
Un vendedor basa su
Tventa=0
ingreso diarios en el
25% de sus ventas Venta=1
diarias. Este desea Mientras venta<>0 hacer
saber cual será su inicio
ingreso al termino del escribir(‘¿ venta ?’)
día, si su venta termina leer venta
cuando ingresa el valor tventa=tventa+venta
cero (0) fin
Ingreso=tventa*0.25
Escribir(‘Ventas : ’,tventa,’ ingreso’,ingreso)
fin

•3
Estructuras Cíclicas(Repetir-Hasta) Ejemplo Do While
Ciclos Infinitos o indeterminados

 La estructura de repetición Repetir-Hasta, ejecuta la(s)


acción(es) dentro del ciclo y posteriormente evalúa la
condición, de ser esta verdadera vuelve a ejecutar la o las
acciones. De ser falsa, continua con la siguiente acción fuera
del ciclo.
Este tipo de estructura permite la ejecutar al menos una vez
el conjunto de acción dentro del ciclo repetir-hasta.
Formato:

Repetir Do {
acción(es) acción(es)

Hasta condición Hacer } while condición

Ejemplo Do While

•4