Diferencias y similitudes entre las estructuras JS while y for

Diferencias y similitudes entre las estructuras JS while y for

Print Friendly, PDF & Email
Valora esta entrada

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!

Francesc Ricart
hola@francescricart.com

Aprender y enseñar. Enseñar y aprender. En el ámbito docente soy docente ocupacional. En el ámbito profesional consultor web. Ofrezco servicios de mejora continua y mantenimiento web. ¿Qué quieres aprender hoy? Encontraréis más acerca de mi en la página sobre mi

No hay comentarios

Escribir un comentario

  Acepto la política de privacidad

Responsable: FRANCESC RICART MUÑOZ.

Finalidad: Gestionar los comentarios que realizas en este blog.

Destinatarios: No se cederán datos a terceros, salvo obligación legal.

Derechos: Tienes derecho a acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la política de privacidad.