Breaking out of multiple loops

Regan Heath regan at netmail.co.nz
Wed Sep 5 06:13:46 PDT 2012


On Wed, 05 Sep 2012 13:55:32 +0100, monarch_dodra <monarchdodra at gmail.com>  
wrote:

> On Wednesday, 5 September 2012 at 12:43:26 UTC, Piotr Szturmaj wrote:
>> Michel Colman wrote:
>>> I have a very simple suggestion for breaking out of nested loops.
>>
>> I think it's already there:  
>> http://dlang.org/statement.html#BreakStatement
>>
>> "If break is followed by Identifier, the Identifier must be the label  
>> of an enclosing while, for, do or switch statement, and that statement  
>> is exited. It is an error if there is no such statement."
>
> I really wish there was a simple "break from current scope" command. It  
> would be kinda like "goto end of scope", just cleaner...

You can lodge an enhancement request, example code:

void main()
{
	label: {
	  // ..code..
	  writefln("code1");
	  writefln("break..");
	  break label;  // jumps to "here:"
	  // ..code..
	  writefln("code2");
	}
	// break lands here
	writefln("here");
}

Current error:
   test.d(nn): Error: enclosing label 'label' for break not found

In fact, as any BlockStatement can be labeled you can argue any  
BlockStatement label should be 'breakable'.

R

-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/


More information about the Digitalmars-d mailing list