While loops
Los bucles while son similares a los bucles for, pero tienen menos funcionalidad. Un bucle while continúa ejecutando el bloque de código siempre y cuando la condición en el while sea verdadera. Por ejemplo, el siguiente código se ejecutará exactamente diez veces:
int n = 0;
while (n < 10) {
n++;
}
Los bucles while pueden ejecutarse infinitamente si una condición es dada la cual siempre se evalua como verdadera (no-zero):
while (1) {
/* hacer algo */
}
Directivas de bucles
Hay dos directivas importantes de bucles que son usadas con todos los tipos de bucles en C - las directivas break
y continue
.
La directiva break
detiene un bucle luego de diez bucles, aunque el bucle while nunca termina:
int n = 0;
while (1) {
n++;
if (n == 10) {
break;
}
}
En el siguiente código, la directiva continue
causa que el comando printf
sea salteado, así solo los números pares son impresos:
int n = 0;
while (n < 10) {
n++;
/* fijarse si n es impar */
if (n % 2 == 1) {
/* volver al principio del bloque while */
continue;
}
/* llegamos a este código si n es par */
printf("El número %d es par.\n", n);
}
Ejercicio
La variable array
consiste de una secuencia de diez números. Dentro del bucle while, debes escribir dos condiciones if
,
las cuales cambian el flujo del bucle de la siguiente manera (sin cambiar el comando printf
):
- Si el número el cual está a punto de ser impreso es menor que 5, no lo imprimas.
- Si el número el cual está a punto de ser impreso es mayor que 10, no lo imprimas y deten el bucle.
Nota que si no avanzas la variable iteradora i
y usas la directiva continue
, quedarás atrapado en un bucle infinito.