9.11 Skip over loops

---------------------

For 'BREAK', 'break', 'CONTINUE', and 'continue', support has been

added for a numerical parameter which defines how many loops are skipped

before breaking or continuing. In the following example there are three

embedded loops:

do{

loop(CX){

for(BX=0;BX<10;BX++){

break; //standard statement

break 0; //break with parameter - skip 0 loops

break 1; //break with parameter - skip 1 loops

break 2; //break with parameter - skip 2 loops

}

LABL0:

}

LABL1:

}while (DX!=0);

LABL2:

In the third loop there is a group of different variants of 'break'.

The first is standard 'break', which causes control to be passed beoynd the

third loop, to 'LABL0'. The second is 'break 0', which causes 0 loops to be

skipped and control, again, to be passed to 'LABL0'. Thus 'break' and

'break 0' are synonyms. The third variant is 'break 1', which causes the

program to skip one loop and pass control beyond the second loop to

'LABL1'. Finally there is 'break 2', which causes the program to skip two

loops and transfer control beyond the third loop to 'LABL2'. The labels in

this example are given for the sake of explanation. I hope it will be clear

to the reader that the value of a parameter cannot exceed the number of

loops before the current loop, and thus for a single loop there is only one

possible value, 0.