<p>I read the following in a review of Knuth's "The Art of Computer Programming":</p>

<p>"The very 'practicality' means that the would-be CS major has to learn Kernighan's mistakes in designing C, notably the infamous fact that a for loop evaluates the for condition repeatedly, which duplicates while and fails to match the behavior of most other languages which implement a for loop."</p>

<p>(<a href="http://www.amazon.com/review/R9OVJAJQCP78N/ref=cm_cr_pr_viewpnt#R9OVJAJQCP78N" rel="nofollow noreferrer">http://www.amazon.com/review/R9OVJAJQCP78N/ref=cm_cr_pr_viewpnt#R9OVJAJQCP78N</a>)</p>

<p>What is this guy talking about?  How could you implement a for loop that wasn't just syntactic sugar for a while loop?</p>

He probably refers to for loops like
```
for i:=0 to N
```
and for-each loops that iterate over the elements of a set. I suspect all languages that have a C-style for loop actually got it from C.