+ 10

I don't understand why this results 3. Anyone please help!

int i=0,j=0,count=0; for(;i < 3; i++){ for(;j < 3;j++){ count++ } } alert(count);

19th Sep 2017, 3:36 PM
Seetha
Seetha - avatar
6 Answers
+ 12
Because after first loop j is 3 and in second and third loop condition j < 3 is not satisfied.
19th Sep 2017, 3:41 PM
Vukan
Vukan - avatar
+ 10
The real output is error. 'int' should be 'var'. Anywho, the problem is that j is declared outside the loop. I highly recommend you start declaring them in the loop. These are the steps the program goes through: i is 0. j is 0. count is 1. j is 1. count is 2. j is 2. count is 3. j is 3. 3 < 3 is false, exit loop. i is 2. j is still 3, so the loop is still false. i is 3. 3 < 3 is false. exit loop. Count is 3.
19th Sep 2017, 3:44 PM
Rrestoring faith
Rrestoring faith - avatar
+ 6
@Rrestoring Faith, wow, talk about details! super cool! thank you very much, it was really kind, appreciate it. *clapping*
19th Sep 2017, 5:44 PM
Ipang
+ 5
@Rrestoring Faith, can you help me understand the for loop where it has no initial value like that example above? I found it confusing, how it works, help is appreciated. Thanks.
19th Sep 2017, 4:38 PM
Ipang
+ 5
@lpang for(;i < 3; i++) This for loop will not declare a variable, but it will still run until i is larger than 2, and increment 'i' when the loop reaches the end each time. for(int i = 0; i < 3; i++) When the loop first begins, the variable 'i' is created and set to the value 0. If we look in the example: int i = 0, j = 0; for(; i < 3; i++) for(; j < 3; j++) { } When the inner loop: 'j' finishes, the outer loop: 'i' starts it back up again. The loops still use 'i' and 'j', but they do not create the variables when the loops first begin. Instead, the variables were already created before the loops started. Because of this, when the inner loop that uses 'j' is finished, the variable 'j' is not reset back to 0 when the loop starts all over again. Hopefully that clears up the confusion, if not maybe provide another example problem that we can go over.
19th Sep 2017, 4:52 PM
Rrestoring faith
Rrestoring faith - avatar
+ 4
Thank you guys! Now I understand it
19th Sep 2017, 5:52 PM
Seetha
Seetha - avatar