On Mon, Feb 14, 2022 at 01:12:48PM +0100, Thomas Zimmermann wrote: > Am 14.02.22 um 11:38 schrieb Andy Shevchenko: > > On Mon, Feb 14, 2022 at 10:03:53AM +0100, Thomas Zimmermann wrote: > > > Am 11.02.22 um 16:41 schrieb Andy Shevchenko: ... > > > > > IMO *always* prefer a for loop over while or do-while. > > > > > > > > > > The for (i = 0; i < N; i++) is such a strong paradigm in C. You > > > > > instantly know how many times you're going to loop, at a glance. Not so > > > > > with with the alternatives, which should be used sparingly. > > > > > > > > while () {} _is_ a paradigm, for-loop is syntax sugar on top of it. > > > > > > Naw, that's not true. > > > > In the section 3.5 "Loops - While and For" in "The C Programming > > Language" 2nd by K&R, the authors said: > > Year of publication: 1988 . It's not the most up-to-date reference for C > programming. Yet this makes your above remark invalid, i.e. `for` _is_ syntax sugar despite what you think it's idiomatic _nowadays_. > > The for statement ... is equivalent to ... while..." > > > > They said that for is equivalent to while, and not otherwise. > > Even leaving readability aside, it's not equivalent. You can declare > variables as part of the for statement. (I know it's not the kernel's > style.) Also, 'continue' statements are not well-suited in for loops, > because it's non-obvious if the loop's update statement is being executed. > (It isn't.) It's also written in the book :-) > > Also, syntax sugar by definition declares something that can be written as > > a single line of code, which usually is done using more (not always). > > The discussion has entered the phase of hair splitting. Good. I don't know why we are adding an oil into the flames... -- With Best Regards, Andy Shevchenko