Another "D" idea (Oh no, not again!)
Val Kartchner
val at wsccs.UUCP
Tue Mar 15 00:42:07 AEST 1988
In article <1170 at ucsfcca.ucsf.edu>, rk9005 at cca.ucsf.edu (Roland McGrath) writes:
...(Some things deleted)...
> things like "break 2;" (e.g.,
> while (x > 0) { while (y != -1) { if (a) break 2; } }
> ), which gets into the named control-loop thing, so these are not just
> the products of my demented mind. They are the products of the demented
> minds of people who get paid lots of money to think of them.
I also think that there should be something like "break 'n';" (Where
'n' is a constant integer. Variables would be interesting and floats
highly ambiguous.) I've often been deep in multiple loops, and wanted
to get out a few levels. Most of the time, I have all the loops that I
want to exit in a subroutine, and just return, but sometimes I can't
afford the time for the function call and the return. This same time
critical restriction is for testing a "flag" variable at EVERY loop
condition; I can't always afford the time.
/* THE WAY IT IS NOW */ /* WITH "break 'n'" */
void function() int another()
{ {
while(....) do
do {
{ ...
for(...) for(...)
{ {
... while(....) /* funtion() */
if(...) do
return; {
... for(...)
} {
} while(...); ...
} if(...)
break 3;
int another() ...
{ }
do } while(...);
{ ...
... }
for(...) }
{ }
function()
...
}
}
}
A similar difficulty could be bypassed in the "switch" statement if
this were allowed:
for(flag=TRUE;flag;) while(TRUE)
{ {
... ...
switch(function()) switch(function())
{ {
case ...: case ...:
case ...: case ...:
... ...
break; break;
default: default:
flag = FALSE: break 2;
break; }
} ...
... }
}
Remember, I ask this to increase the usability of C (C is my computer
language of choice), but it must be used with care. It would tend to
disabiguize some complex looping structures, but it must not be
overused as "goto" often is.
--
--- /\ ------------ Val Kartchner {UT at WSC} ---- #include <flamesuit.h> -----
/\/\ . /\ | "Those who don't understand VMS are condemmed to reinvent
/ \/ \/\/ \ | Unix; those who understand VMS and Unix use VMS."
==/ U i n T e c h \====!ihnp4!utah-cs!utah-gr!uplherc!sp7040!obie!wsccs!val====
More information about the Comp.lang.c
mailing list