Why is this loop always executing once?

Q

Why is this loop always executing once?

✍: Guest

A

for(i = start; i < end; i++);
{
printf("%d\n", i);
}


A: The accidental extra semicolon hiding at the end of the line containing the for constitutes a null statement which is, as far as the compiler is concerned, the loop body. The following brace-enclosed block, which you thought (and the indentation suggests) was a loop body, is actually the next statement, and it is traversed exactly once, regardless of the number of loop iterations.

2015-06-03, 1141👍, 0💬