Intro
Este problema consiste en recorrer un array de números, si el número es un múltiplo de 3 tenemos que remplazarlo con la palabra FIZZ, si un múltiplo de 5 con la palabra BUZZ y si es un múltiplo de 3 y 5 con FIZZ BUZZ.
Ej. 1, 2, FIZZ, 4, BUZZ, FIZZ, 7, 8, FIZZ, BUZZ, 11, FIZZ, 13, 14, FIZZ BUZZ, ...
Primero de todo tenemos que conocer el operador de resto (%), este operador nos permite calcular la resta de una división.
ej. 3 % 2 es 1 y 3 % 3 es 0.
Crear bucle for
Como primera cosa creamos un bucle for que itere 15 veces y a cada iteración hacemos un console.log del contador
for (i = 1; i < 16; i++) {
console.log(i)
}
Primera condición
Ahora podemos implementar una condición como i % 3 === 0 y si la condición es verdadera hacemos un console.log('FIZZ')
for (i = 1; i < 16; i++) {
if (i % 3 === 0) {
console.log('FIZZ');
}
console.log(i)
}
Si nos fijamos en los números en consola podemos ver que ahora en todos los números divisibles por 3 tenemos la Palabra FIZZ,
OUTPUT
1, 2, FIZZ, 3, 4, BUZZ, FIZZ, 6, ...
⚠️ pero tenemos un problema, también estamos imprimiendo los números divisibles por 3, para evitar eso podemos incrementar el contador en el momento que entra en la condición con i++:
for (i = 1; i < 16; i++) {
if (i % 3 === 0) {
console.log('FIZZ');
i++
}
console.log(i)
}
Segunda condición
lo mismo haremos con el 5 para imprimir BUZZ
for (i = 1; i < 16; i++) {
if (i % 3 === 0) {
console.log('FIZZ');
i++
}
if (i % 5 === 0) {
console.log('BUZZ');
i++
}
console.log(i)
}
Tercera condición
Para el FIZZ BUZZ tenemos que utilizar el operador && para comprobar que las dos condiciones sean verdaderas y tiene que ser la primara condición! ⚠️
for (i = 1; i < 16; i++) {
if (i % 3 === 0 && i % 5 === 0) {
console.log('FIZZ BUZZ');
i++
}
if (i % 3 === 0) {
console.log('FIZZ');
i++
}
if (i % 5 === 0) {
console.log('BUZZ');
i++
}
console.log(i)
}
