[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