En un meme que vi hace algún tiempo decía que el if es una manera elegante de un ciclo while que se rompe en la primera iteración.
Pensándolo bien, eso era correcto (sí sí ya sé que era una broma) y aparte de ello, el ciclo for también es azúcar sintáctica para un simple while.
Veamos en este post cómo while puede remplazar a for y a if.
Antes que nada
Esto es un pensamiento, una simple forma de ver las cosas, un análisis simple y tal vez una broma. Ya sé que todas las instrucciones existen por razones muy fuertes, esto es una simple opinión.
While puede remplazar a if
Claro que sí. Podemos poner un while y romperlo inmediatamente. Veamos este código de JavaScript en donde se comprueba si un usuario es mayor o menor de edad. De manera simple queda así:
let edad = parseInt(prompt("Dime tu edad"));
if (edad > 18) {
alert("Eres mayor de edad");
}
En caso de que la edad sea mayor que 18, entonces se imprimirá el mensaje. Ese código, con while, queda así:
let edad = parseInt(prompt("Dime tu edad"));
while(edad > 18) {
alert("Eres mayor de edad");
break; // ¡No olvides el break!
}
Se alcanza el mismo comportamiento, pero sin usar if
. Claro que ahora no tenemos un else
ni esas cosas, pero el objetivo era demostrar que while es un remplazo para if.
While puede remplazar a for
Claro que se puede remplazar a for con while. Veamos un ejemplo en donde se imprime la tabla de multiplicar del número 5 en consola con for
. Queda así:
const TABLA = 5;
for(let i = 1; i <= 10; i++){
console.log(`${i} x ${TABLA} = ${i * TABLA}`);
}
Eso imprimirá la tabla del 5. Pero también se puede dejar de lado y utilizar únicamente while, quedando así:
const TABLA = 5;
let i = 1;
while (i <= 10) {
console.log(`${i} x ${TABLA} = ${i * TABLA}`);
i++;
}
Se logra el mismo resultado pero sin usar for.
Por cierto, en el código utilizo let con const, así como las plantillas de cadena.
Conclusión
Por mera diversión se podría remplazar a if y for usando while. pero en la práctica esto se debería evitar; pues las sentencias existen para algo y brindan una manera más óptima de pensar y resolver las cosas.