[Issue 3699] New: Feature Request: while-else
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Tue Jan 12 08:39:53 PST 2010
    
    
  
http://d.puremagic.com/issues/show_bug.cgi?id=3699
           Summary: Feature Request: while-else
           Product: D
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: yanikibo at gmail.com
--- Comment #0 from ibrahim YANIKLAR <yanikibo at gmail.com> 2010-01-12 08:39:50 PST ---
It would be nice to add a while-else statement to the language.
while ( Expression1 )
    ScopeStatement1
else
    ScopeStatement2
may act like that:
if ( Expression1 )
    do
        ScopeStatement1
    while ( Expression1 );
else
    ScopeStatement2
or like that:
bool entered = false;
while ( Expression1 )
{
    entered = true;
    ScopeStatement1
}
if (!entered)
    ScopeStatement2
two of them has some problems. 
First one is more efficient but you must write the same expression twice.
The second is more readable but there is an extra declaration and an extra
cost.
while-else is more readable and more efficient. 
someone can want a python like while-else statement.
using while-finally syntax would be more suitable for that.
while ( ... )
{
    ...
    if ( ... )
       break;
    ...
}
finally
    ScopeStatement3
...
if break occures the ScopeStatement3 is not executed else it is executed once.
But I think it is not necessary because we can provide that by using a simple
goto statement instead of break. 
while ( ... )
{
    ...
    if ( ... )
       goto label;
    ...
}
ScopeStatement3
label:
...
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
    
    
More information about the Digitalmars-d-bugs
mailing list