Escribir la canción de las botellas sobre la pared con JS

0
(0)

Publicado

Aviso importante web en obras

Es posible que el contenido que estás visualizando tenga un formato un poco raro o que se haya perdido algún contenido. Esto se debe a que en 2023/09 decidí renovar la página y con más de 1000 escritos el trabajo de irlos revisando uno por uno es agotador. Poco a poco iré corrigiendo todos los contenidos. ¡Gracias por la comprensión!

portada ejercicio javascript

En esta publicación se propone un ejercicio basado en una canción infantil.

El objetivo es practicar la lógica de programación recursiva (por iteraciones).

Puedes leer esta entrada para repasar la teoría.

Enunciado

Basado en la famosa canción infantil «hay n botellas sobre la pared pero si desafortunadamente una se cayera entonces quedan n-1 botellas«.

Reproduce el mismo contenido que en la imagen adjunta.
Escribir la canción de las botellas sobre la pared con JS 1

Solución con un while

Resolvemos el ejercicio mediante un while.

Fijaros que en el caso de quedar 0 botellas entonces modificamos la frase haciendo uso de un if.

var i=10; // empezaré con 10 botellas sobre la pared

while(i>=0){
	if(i!=0){
	document.write("<p>Hay <b>" + i + "</b> botellas sobre la pared. Pero si una botella se cae por mala suerte, entonces quedan <b>");
		i=i-1; //(equivale a escribir i--)
		document.write(i + "</b> botellas sobre la pared</p>");
	}else{
		document.write("<p>Ya no hay <b> ninguna</b> botella sobre la pared.");
		i=i-1; //(equivale a escribir i--)
	}
}

Solución con un for

Presentamos una solución alternativa mediante un for.

for(var i=10; i>=0;i--){
	if(i!=0){
		document.write("<p>Hay <b>" + i + "</b> botellas sobre la pared. Pero si una botella se cae por mala suerte, entonces quedan <b>");
		document.write(i + "</b> botellas sobre la pared</p>");
	}else{
		document.write("<p>Ya no hay <b> ninguna</b> botella sobre la pared.");
	}
}

¡Hola!

Querido lector,

¿Qué opción te gusta más, el while o el for?

¡Si te ha gustado este contenido te animo a seguirme en mi perfil de empresa de Linkedin!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *