Esta estructura tiene el siguiente formato:
La
condición es cualquier expresión simple que al evaluarse
devuelve el valor verdadero o falso. El bucle se repite mientras la condición
sea verdadera. Cuando es falsa, el programa pasa a la instrucción
siguiente, después del cuerpo de la estructura.
Si quisiésemos hacer
el equivalente del for
con el while pondríamos:
con el while sería:
Tanto el while como el for son muy usados para recorrer arrays y cadenas de caracteres. |
Ejemplo: Aquí
presentamos la traza de un bucle while,
la cual calcula la media entre los números impares del 3 al 11,
realizando sumas sucesivas, culminando con la división de la suma
de todos ellos entre el número de números sumados, mostrándose
el resultado por pantalla.
El usar while
o
for
es
principalmente cuestión de preferencia personal. Por ejemplo, en:
/*ignora espacios en blanco. Su condición recibe un carácter por teclado, con la instrucción getchar(), si el carácter introducido es un espacio en blanco, un retorno de carro (nueva línea), o un tabulador horizontal, sigo ciclando, y pidiendo nuevos caracteres por teclado, hasta que el introducido sea distinto de los mencionados anteriormente.*/ |
El for,
en cambio es más preferible cuando existe una inicialiazación
simple e incrementos, puesto que mantiene las proposiciones de control
del ciclo juntas y visibles al principio del mismo. Esto es más
obvio en:
Ejemplo 1:
main() { /* visualizar los números del 0 al 9.*/
while (digito<=9) {
Visualizará: 0
1 2 3 4 5 6 7 8 9
NOTA: Inicialmente se le asigna a digito el valor de cero. El bucle while visualiza el valor actual de digito, incrementando su valor en uno y repitiéndose el ciclo, hasta que el valor de digito sea mayor que 9. El efecto total es que el cuerpo del bucle se repetirá diez veces, generándose diez visualizaciones de salida. Como en la instrucción printf no hemos puesto un \n de salto de línea, entonces, los números del 0 al 9 aparecerán seguidos, y sólo separados por un espacio en blanco, que es el que aparece entre comillas en la instrucción printf. |
Ejemplo 2:
main() {
while(i<final) {
Visualizará: 0
1ª comprobación del
bucle: (0<40), cierto.
2ª comprobación del bucle: (0<40), cierto. 3ª comprobación del bucle: (10<40), cierto. 4ª comprobación del bucle: (20<40), cierto. 5ª comprobación del bucle: (30<40), cierto. 6ª comprobación del bucle: (40<40), falso, entonces, nos vamos a la sentencia: j=100;. |