Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Control flow
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Multiple early exit/exit from nested loops === [[Zahn's construct|This construct]] was proposed by [[Zahn's construct|Zahn]] in 1974.<ref>Zahn, C. T. "A control statement for natural top-down structured programming" presented at Symposium on Programming Languages, Paris, 1974.</ref> A modified version is presented here. '''exitwhen''' EventA '''or''' EventB '''or''' EventC; xxx '''exits''' EventA: actionA EventB: actionB EventC: actionC '''endexit'''; '''exitwhen''' is used to specify the events which may occur within ''xxx'', their occurrence is indicated by using the name of the event as a statement. When some event does occur, the relevant action is carried out, and then control passes just after '''{{not a typo|endexit}}'''. This construction provides a very clear separation between determining that some situation applies, and the action to be taken for that situation. '''exitwhen''' is conceptually similar to [[exception handling]], and exceptions or similar constructs are used for this purpose in many languages. The following simple example involves searching a two-dimensional table for a particular item. '''exitwhen''' found '''or''' missing; '''for''' I := 1 '''to''' N '''do''' '''for''' J := 1 '''to''' M '''do''' '''if''' table[I,J] = target '''then''' found; missing; '''exits''' found: print ("item is in table"); missing: print ("item is not in table"); '''endexit''';
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)