for loop
Jonathan M Davis
jmdavisProg at gmx.com
Mon Jan 23 10:58:16 PST 2012
On Monday, January 23, 2012 19:48:02 Timon Gehr wrote:
> On 01/23/2012 07:06 PM, bearophile wrote:
> > Ellery Newcomer:
> >> void main(){
> >>
> >> for ({int x=0; short y=0;} x< 10; x++, y++){
> >> }
> >>
> >> }
> >
> > I don't understand, is that a compiler bug?
> > Aren't x and y in a sub-scope that ends before you use x and y?
> >
> > Bye,
> > bearophile
>
> It is not a bug.
>
> ForStatement:
> for (Initialize Testopt ; Incrementopt) ScopeStatement
> Initialize:
> ;
> NoScopeNonEmptyStatement
>
> Initialize is NoScope.
That's a pretty cool feature actually, since it gives you much more flexibility
with regards to the types of the variables that you declare in the beginning
of the for loop (or other things that you might want to do to the variables
prior to running the loop. My only concern with it would be programmers not
understanding it, because they're not used to it. I may start using.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list