Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > comp.lang.c > #393224

Re: Loops (was Re: do { quit; } else { })

From Michael S <already5chosen@yahoo.com>
Newsgroups comp.lang.c
Subject Re: Loops (was Re: do { quit; } else { })
Date 2025-05-07 12:32 +0300
Organization A noiseless patient Spider
Message-ID <20250507123232.00005f8b@yahoo.com> (permalink)
References (13 earlier) <H7yLP.2056536$OrR5.1414451@fx18.iad> <vtmgj8$g81k$1@dont-email.me> <ISOLP.1774061$FVcd.178862@fx10.iad> <20250416173721.000030b5@yahoo.com> <86ecx13nfb.fsf@linuxsc.com>

Show all headers | View raw


On Tue, 06 May 2025 05:59:20 -0700
Tim Rentsch <tr.17687@z991.linuxsc.com> wrote:

> Michael S <already5chosen@yahoo.com> writes:
> 
> > On Wed, 16 Apr 2025 14:09:44 GMT
> > scott@slp53.sl.home (Scott Lurndal) wrote:
> >  
> >> bart <bc@freeuk.com> writes:
> >>  
> >>> On 15/04/2025 20:07, Scott Lurndal wrote:
> >>>  
> >>>>  
> >>> Let's look at that C again:
> >>>
> >>>     for (int i = 1; i < 11; i += 1)  # 15 tokens;  C  
> >>
> >>   for(i = 1; i++ <= 10;)  
> >
> > I'd reject this code during review.
> > Hopefully, you too.  
> 
> I'm curious to know the basis for your reaction.  What about the
> code would prompt your judgment to reject it?  Is it just a
> specific reaction, or does it represent some more general pattern
> (and if so then what more general pattern)?

First and foremost it was tongue-in-cheek reaction to the article that
Scott posted 2-3 minutes after the article that I was reacting to.

At the next level, it is true that if I do detailed code review (which
I almost never do) I would indeed reject this code. The first
and sufficient reason is that the code looks superficially similar to
very common idiom, but significantly differs in behavior. An additional
reason is that post-increment operator is generally harder to reason
about than almost any other C operator, esp. so when used as part of
comparison, so, IMHO, readable code should limit use of post-increment
to very common idioms (or altogether avoid it). The third reason,
related to the first two is that behavior of this loop is way too
surprising.

Back to comp.lang.c | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: Loops (was Re: do { quit; } else { }) Tim Rentsch <tr.17687@z991.linuxsc.com> - 2025-05-06 05:59 -0700
  Re: Loops (was Re: do { quit; } else { }) Michael S <already5chosen@yahoo.com> - 2025-05-07 12:32 +0300
    Re: Loops (was Re: do { quit; } else { }) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2025-05-07 14:54 +0200
    Re: Loops (was Re: do { quit; } else { }) scott@slp53.sl.home (Scott Lurndal) - 2025-05-07 13:50 +0000
    Re: Loops (was Re: do { quit; } else { }) Tim Rentsch <tr.17687@z991.linuxsc.com> - 2025-05-11 23:48 -0700

csiph-web