Deutsch   English   Français   Italiano  
<v3lgti$325i$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.nobody.at!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bart <bc@freeuk.com>
Newsgroups: comp.lang.c
Subject: Re: C23 thoughts and opinions
Date: Mon, 3 Jun 2024 23:43:00 +0100
Organization: A noiseless patient Spider
Lines: 50
Message-ID: <v3lgti$325i$1@dont-email.me>
References: <v2l828$18v7f$1@dont-email.me>
 <v2o57g$1t5p4$1@raubtier-asyl.eternal-september.org>
 <v3dkgh$2e0me$1@dont-email.me> <v3gou9$36n61$3@dont-email.me>
 <v3hrq7$1o743$1@news.xmission.com> <v3i7u3$3bp0v$1@dont-email.me>
 <20240602124448.704@kylheku.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 04 Jun 2024 00:42:58 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="027492d54fa7a72a30fd705d730c9473";
	logging-data="100530"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19KSY9gTc/icsnJvBDGkFKB"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:8zZmEYWHv6o/oHB25W0ILb3ahI4=
Content-Language: en-GB
In-Reply-To: <20240602124448.704@kylheku.com>
Bytes: 2942

On 02/06/2024 20:52, Kaz Kylheku wrote:
> On 2024-06-02, Lew Pitcher <lew.pitcher@digitalfreehold.ca> wrote:
>> I've always considered
>>    for (;;)
>> preferable over
>>    while (1)
> 
> Of course it is preferable. The idiom constitutes the language's direct
> support for unconditional looping, not requiring that to be requested by
> an extraneous always-true expression.
> 
> Using while (1) or while (true) is like i = i + 1 instead
> of ++i, or while (*dst++ = *src++); instead of strcpy.
> 
> When Dennis Ritchie (if it was indeed he) chose for to be the construct
> in which the guard expression may be omitted, so that it may express
> conditional looping, he expressed the intent that it be henceforth used
> for that purpose.
> 
> To continue to use while (1) after the proper utensil is provided is
> like to eat with your hands instead of a fork.
> 

To me they're both an abomination.

I classify loops like this: Endless, Repeat-N-times, While, Iteration 
(over ranges or values).

Few languages have a special form for the first two, but mine always 
have done.

'while' is no good for endless loops because there is no actual 
condition to check. You have to provide one just for it to be eliminated.

'for' is even worse because there is no sort of iteration going on. 
Actually, somebody could write a loop like this:

    for(int i=0;;++i)

Is that an endless loop or not? Like every other for-loop, you have to 
analyse it to deduce the intent. Here, you can't even be sure that the 
empty condition wasn't an oversight.

At this point someone will suggest a macro this:

   #define forever for(;;)

All that suggest sto me is that the language *needs* an explicit endless 
loop!