+ 3

# Can you explain how the result comes to be 11

var i=2; var k=1; var j=0; for(k=0;k<10;k++) j++; for(i=0;i<10;i++) continue ; j++; alert(j);

5 Answers

+ 5

got ya now. when k=0 j gets incremented and becomes j=1....so forth until the 10th iteration where in fact k happens to be 9. crystal clear. ...often times I get lost inside loops lol. thanks

+ 4

var i=2;
var k=1;
var j=0;
// This loop gets j to 10
for(k=0;k<10;k++) {
j++;
}
// This loop does nothing but skipping
for(i=0;i<10;i++) {
continue ;
}
// Add 1 to j, which was equal to 10
j++;
// Show 11 in the alert
alert(j);

+ 4

thank you very much for your clarifications. still , I thought setting the first loop would restrict the incremention of j to 9 and not 10 . could you elaborate on that please.

+ 2

Well, because k is now equal to 0 in the first loop, there are 10 numbers to iterate through: [0, 1, 2, 3, 4, 5, 6, 7 ,8, 9].

+ 1

j starts from 0 and gets incremented with each loop cycle. The loop will run 10 cycles: k=0, k=1, k=2, k=3, k=4, k=5, k=6, k=7, k=8, k=9.
k=10 would've been 11th cycle. We start from 0, end at 9 (inclusive), so including 0 and 9, we get 10 cycles. for(k=1;k<=10;k++) {...} is also 10 cycles.