foreach

via Digitalmars-d digitalmars-d at puremagic.com
Sat Jun 14 03:20:51 PDT 2014


On Friday, 13 June 2014 at 21:41:43 UTC, Jonathan M Davis via 
Digitalmars-d wrote:
> On Fri, 13 Jun 2014 11:03:14 -0700
> "H. S. Teoh via Digitalmars-d" <digitalmars-d at puremagic.com> 
> wrote:
>> I disagree, it's not a special case. It's simply a logical 
>> consequence
>> of each part of the for-loop being optional. Prohibiting 
>> for(;;) would
>> *be* a special case, because then you're saying that each 
>> component of
>> the for-loop is optional, *except* when all of them are 
>> omitted.
>>
>> (Not to mention, for(;1;) is truly an eyesore, far worse than 
>> for(;;).)
>
> It's a special case in that the middle portion is supposed to 
> be the condition
> that the loop use to determine whether it can continue, and 
> omitting it means
> that it has to add the true itself, whereas with the other two 
> pieces it makes
> perfect sense that they'd be optional, since they're not 
> required to determine
> whether the loop needs to terminate. They're just handy helpers.

But this special treatment of the second operand is the same in 
all forms of the for loop:

     for(int i = 0; ; ++i)    // endless loop

Therefore, the fact that `for(;;)` is also an infinite loop is 
not an exception.


More information about the Digitalmars-d mailing list