Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: Notesfiles; site ea.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!ihnp4!inuxc!pur-ee!uiucdcs!ea!mwm
From: mwm@ea.UUCP
Newsgroups: net.lang
Subject: Re: Re: Teaching students with GOTO - (nf)
Message-ID: <5400006@ea.UUCP>
Date: Wed, 6-Jun-84 13:43:00 EDT
Article-I.D.: ea.5400006
Posted: Wed Jun  6 13:43:00 1984
Date-Received: Sun, 10-Jun-84 01:30:06 EDT
References: <5806@mcvax.UUCP>
Lines: 31
Nf-ID: #R:mcvax:-580600:ea:5400006:000:1057
Nf-From: ea!mwm    Jun  6 12:43:00 1984

#R:mcvax:-580600:ea:5400006:000:1057
ea!mwm    Jun  6 12:43:00 1984

/***** ea:net.lang / brl-vgr!ron / 10:26 pm  May 31, 1984 */
GAK!  What makes you think that BREAK to the n-th power is better than
a goto to exit the loop.  It certainly is a lot clearer and easier to
find the label to which you are breaking, rahter than looking to see how
many loops you are in.  You just can't count indentation because BREAK
exits SWITCH, WHILE, and DO but not other blocks.  CONTINUE doesn't exit
SWITCHs.  As a stated in my previous message, just because you don't use
gotos don't think that you are writing structured code.  You can do some
pretty gross unstructured things even without gotos.

-Ron
/* ---------- */

Good point. While a one-level break is better than a goto, it isn't clear
that "break 23" is better than a goto. How about combining them the way
BCPL does, as:

	$(block-name
		
		break block-name
		
	$)block-name

In other words, label the blocks, and break