Pensamientos

¿while puede remplazar a for y a if?

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.