I am learning JavaScript for loop where I tried running this code in google chrome developers tools where the output made me more confused. Can someone explain me what this code is doing.
let sum = 0;
for (let i = 2; i <= 6; i++) {
sum = sum + i;
}
I was expecting the result as 6, as the "test condition" given is i <= 6 but I got the output as 20. How I am getting 20 here when the loop has to stop at 6
2 Answers 2
It doesn't adds 1 in each iteration it adds the value of i which increase in each loop.
sum = 2 + 3 + 4 + 5 + 6
You can see what's happening in your code in the below snippet
let sum = 0;
for(let i = 2; i <=6; i++){
sum = sum + i;
console.log(`sum = ${sum - i} + ${i} = ${sum}`)
}
console.log(sum)
If you will increment sum by 1 and start loop at 1 instead of 2 then the result value will be 6
let sum = 0;
for(let i = 1; i <=6; i++){
sum = sum + 1;
}
console.log(sum)
2 Comments
in 1st line, you have assigned sum as initially zero. for loop, the loop will start with taking initial of i i.e 2 and stop when it is 6 i.e i<=6
i = 2 .... sum = sum + i; ... sum = 0 + 2 = 2
i = 3 .... sum = sum + i; ... sum = 2 + 3 = 5
i = 4 .... sum = sum + i; ... sum = 5 + 4 = 9
i = 5 .... sum = sum + i; ... sum = 9 + 5 = 14
i = 6 .... sum = sum + i; ... sum = 14 + 6 = 20
so your final output is 20
i, and 2 + 3 + 4 + 5 + 6 is 20sumto read6, you should increment by 1 at every iteration, i.e.sum++instead ofsum + i.5since it starts at2.let i = 1; i <= 6orlet i = 0; i < 6in conjunction with usingsum++then that will work