Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site cca.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!bbnccv!bbncca!wanginst!infinet!emacs!cca!alex@cca.UUCP (Alexis Layton)
From: alex@cca.UUCP (Alexis Layton)
Newsgroups: net.lang.c
Subject: Multi-exit loops
Message-ID: <4803@cca.UUCP>
Date: Wed, 6-Nov-85 19:00:32 EST
Article-I.D.: cca.4803
Posted: Wed Nov  6 19:00:32 1985
Date-Received: Mon, 11-Nov-85 05:13:58 EST
Sender: alex@cca.UUCP
Reply-To: alex@cca-unix.ARPA (Alexis Layton)
Organization: Computer Corp. of America, Cambridge
Lines: 15

In the most recent SIGPLAN Notices (Vol. 20, No. 11; November 1985) there
is what I consider to be an excellent article by P. A. Buhr entitled
"A Case for Teaching Multi-exit Loops to Beginning Programmers".
While he does make several good points about why beginning programmers should
learn these concepts, the bulk of the article is a very cogent argument about
why languages should support a multi-exit loop construct.  He differentiates
between the common of use of C's "break" statement (and equivalent statements
such as Ada's "exit") and a more syntactic loop-exiting statement which can
only occur in the "top-level" (so to speak) of the loop body.

While I primarily agree with his recommendations (and I hope new language
designers are familiar with his reasoning), the kind of loop construct involved
is too foreign to the style of C to integrate it in any way.  I fear that
attempts to use the preprocessor to enforce any kind of loop-like construct
are doomed to produce confusing code.

					Alexis Layton
					Computer Corporation of America
					alex@cca-unix.ARPA
					decvax!cca!alex