Say you have a for loop that increments one notch each time it repeats. I code such a loop in this fashion:
for(x=0;x<10;x++)
More common, however, programmers use this approach:
for(x=0;x<10;++x)
The difference is in how the variable x
is incremented. I put the ++
after the x
, but most coders put it before. What the deal?
Whether you specify x++
or ++x
is merely a matter of preference. That's because the value of x
isn't being assigned to something. In the for loop's guts, the x++
or ++x
is its own statement.
In their seminal work, The C Programming Language, Brian Kernighan and Dennis Ritchie use ++x
in their for loop examples. I read that book when I was first learning C, as well as multiple other books. I can only assume that the last book I read — the one where C finally clicked for me — showed x++
in a for loop. That's my best guess.
Whether you use one approach or the other, the value of variable x
is incremented the same as the for loop spins. Here's sample code for my method:
#include <stdio.h> int main() { int x; for(x=0;x<10;x++) printf("%d\n",x); printf("%d\n",x); return(0); }
I ran this code to check the value of variable x
inside the loop and when the loop is done. Here's the output:
0
1
2
3
4
5
6
7
8
9
10
If I modify Line 7 to read for(x=0;x<10;x++)
, the output is the same: The loop starts with x
equal to 0 and ends with x
equal to 9. After the loop is done, in both cases, x
equals 10.
Consider this issue one of preference only. It matters not whether x
is incremented before or after, the results are the same.
In a way, this choice is similar to how I write my return statements. I use parentheses but a lot of C coders choose not to. The parentheses optional when return specifies a single value, so using one or the other is simply a matter of preference.