If I have the following for loop:
for (int k = 1; k<n; k=k+1){
(CODE)
}
and I defined n elsewhere, does the code inside the for loop happen each time k becomes k+1, or does it happen only when k=n?
assuming n
is in scope as control reaches the for
loop and is greater than k
, the code that represents the body of the loop will execute exactly n - 1
times in this case.
why? unless stated otherwise, after each iteration, k
is incremented by 1
(per k = k + 1
) and the loop keeps iterating until the condition k < n
becomes false
(i.e., when k
is greater than or equal to n
).
see the short on loops for more info: http://youtu.be/rBEwCpvwdPY!
Basically, the (CODE)
will run as long as k<n
. int k =1
will set k = 1 when this part of the code is executed the first time. Once the loop has run,
the k=k+1
part of the code will excecute
A good way to show how the code runs is as follows:
When this code is reached, k is set to 1 from the int k =1
instruction.
Then , k<n
is checked. If this is true, (CODE)
is executed
Then k=k+1
is executed, then return to step 2.
That's one iteration of the loop. Then we go back to step 2 and check k<n
. Once k is equal to n (k==n), the loop breaks and the rest of the code runs.
if you understand while loops this may help
int k = 1;
while (k<n)
{
(CODE)
k+=1
}