Duda con bucle for

Porque esto da 45? Quería que el resultado fuera 10, no 45😅

let bucle = 0;
for(let i = 0; i < 10; i += 1){
bucle += i;
}
console.log(bucle);

Gracias

Do you understand what this bucle += i; is doing?

Did you try logging out inside the loop?

let bucle = 0;
for (let i = 0; i < 10; i += 1) {
  bucle += i;
  console.log(i);
  console.log(bucle);
}

Look at the logs and see if you can figure it out.

1 Like

gracias por responder.
Por lo que puedo entender console.log(i); suma 1 mientras i < 10
Pero console.log(bucle); ( bucle += i;) hace que se sume i++ a cada valor de bucle.
Osea, 0(+1)= 1(+2)= 3(+3)= 6(+4)= 10(+5)= 15(+6)= 21(+7)= 28… 36 45 y vuelve a empezar 0 1 3 6 10 15 21 28 36 45
Me cuesta comprender ésto que he hecho, sin querer, pero con un par de veces lo entenderé.
La solución para lo que quiero hacer, que el resultado sea 0 0.5 1 1.5 2 2.5 3 3.5…hasta 10, tendria que hacer esto, parece:

let bucle = 0;
for (let i = 0; i <= 10; i += 0.5) {
  bucle = i;
  console.log(i); // 0 0.5 1 1.5 2 2.5 3 3.5...10
}

En el primer loop ambos son 0
En el segundo i = 1 y bucle = 1
Pero en el tercero i = 2 y bucle = 3, porque le sumas el valor actualizado de i
Básicamente haces: bucle = 0+1+2+3+4+5+6+7+8+9
No sé si esto resuelve tu duda, no sé cuál era el objetivo, si me lo explicas puedo ayudarte.

Un saludo.

1 Like