Es normal que dudemos entre si debemos usar un while o un for. Se trata de dos estructuras iterativas muy parecidas.
Para observar sus similitudes y diferencias resolvemos primero un mismo ejercicio con ambas estructuras.
El problema elegido consiste en una estructura iterativa que escriba los números del 1 al 100.
Resolución mediante un while
var j=0;
while(j<=100){
document.write(j);
document.write('<br>');
j++;
}
El while contiene los mismos elementos que el for salvo que en distinto orden.
La variable de iteración se debe declarar e inicializar antes de entrar en el while.
En el paréntesis encontraremos las condición de salida de las iteraciones.
Dentro de las llaves {} en algún momento se debe actualizar el valor de la variable de iteración.
Resolución mediante un for
for(var i=0; i<=100; i++){
document.write(i);
document.write('<br>');
}
El for se caracteriza por ser una estructura muy paquetizada.
En el mismo paréntesis se encierra por este orden la declaración de la variable que permite las iteraciones, la condición de salida de las iteraciones y la condición de actualización de la variable de iteración entre cada nueva iteración.Como se puede observar las instrucciones de código son prácticamente las mismas para el for y el while.
La diferencia está en que se escriben en diferente orden y lugar.
¿Cuando usar el while y cuando el for?
Usa aquella instrucción que te permita entender la resolución del problema de un modo más simple.
Típicamente usaremos el for cuando queremos recorrer todos los casos posibles. Por ejemplo queremos evaluar todas las posiciones de un array.
El while a menudo se usa acompañado de una condición de salida.
Ahora bien, imaginemos que queremos evaluar los casos del 1 al 100 mientras se cumpla que el i no es igual a 50.
¿Como se escribiría?
Resolución mediante un while
var z=0
var condicion = i==50;
while(z<=100 && !condicion){
document.write(z);
document.write('<br>');
z++;
condicion = (z == 51);
}
La variable condición será cierta cuando i sea igual a 50.
De este modo como en la condición del while obtendremos (cierto i falso) la respuesta será false y no se ejecutará la siguiente iteración.
Resolución mediante un for
for (k=0;k<=100 && k!=51;k++){
document.write(k);
document.write('<br>');
// if (k==50){
// k=100;
// }
}
En el ejemplo si se cumple la condición que k sea 50 entonces le actualizamos el valor a 100 para que sea la última iteración.
Cuando se ejecute la siguiente iteración entonces k sería 101 y por tanto ya no se evaluaría más veces.
¡En el caso de querer usar el if atención de escribir == y no = en el if!¿Entonces que reme recomiendas, while o for?
Querido lector,
Cuando estás aprendiendo lo más importante es que tu programa funcione y que entiendas porqué se comporta según lo esperado.
Tiempo habrá para que ganes experiencia y decidas en cada ocasión lo que te convenga mejor.
¡Si te ha gustado este contenido te animo a seguirme en mi perfil de empresa de Linkedin!
Deja una respuesta