Recibí una pregunta de prueba en mi curso en línea Full Stack Web Development que dice lo siguiente:
let sum = 0; for (let i = 0; i < 5; i++) { for (let j = 0; j < 2; j++) { sum = sum + i + j; continue; } } console.log(sum);Ahora, la respuesta correcta a la pregunta es 25 según la respuesta del cuestionario, pero no tengo idea de cómo llega a 25. Lo más cercano que tengo cuando lo escribo en papel para tratar de visualizarlo, es 15/16.
¿Podría alguien escribir una visualización que me aclare cómo este bucle anidado llega a 25?
Gracias por adelantado.
Agregue una consola después del segundo para, debería ver la visualización
let sum = 0; for (let i = 0; i < 5; i++) { for (let j = 0; j < 2; j++) { console.log(`sum=${sum} i=${i} j=${j}`) sum = sum + i + j; continue; } } console.log(sum); //output // sum=0 i=0 j=0 // sum=0 i=0 j=1 // sum=1 i=1 j=0 // sum=2 i=1 j=1 // sum=4 i=2 j=0 // sum=6 i=2 j=1 // sum=9 i=3 j=0 // sum=12 i=3 j=1 // sum=16 i=4 j=0 // sum=20 i=4 j=1 // 25Aquí están todas las iteraciones de los bucles y el valor de la sum después de cada uno.
i = 0 j = 0 sum = 0 + 0 + 0 = 0 i = 0 j = 1 sum = 0 + 0 + 1 = 1 i = 1 j = 0 sum = 1 + 1 + 0 = 2 i = 1 j = 1 sum = 2 + 1 + 1 = 4 i = 2 j = 0 sum = 4 + 2 + 0 = 6 i = 2 j = 1 sum = 6 + 2 + 1 = 9 i = 3 j = 0 sum = 9 + 3 + 0 = 12 i = 3 j = 1 sum = 12 + 3 + 1 = 16 i = 4 j = 0 sum = 16 + 4 + 0 = 20 i = 4 j = 1 sum = 20 + 4 + 1 = 25Quizás esto le dará más visualización de lo que está pasando:
let sum = 0; for (let i = 0; i < 5; i++) { console.log("loop start"); console.log("i", i); for (let j = 0; j < 2; j++) { console.log("sum", sum); console.log("j", j); sum = sum + i + j; continue; } console.log("loop end"); } console.log(sum);