Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!vrdxhq!bms-at!stuart From: stuart@bms-at.UUCP (Stuart D. Gathman) Newsgroups: comp.lang.c Subject: Re: goto's Message-ID: <465@bms-at.UUCP> Date: Tue, 28-Jul-87 15:45:43 EDT Article-I.D.: bms-at.465 Posted: Tue Jul 28 15:45:43 1987 Date-Received: Thu, 30-Jul-87 02:21:05 EDT References: <3289@bigburd.PRC.Unisys.COM> <7571@beta.UUCP> <765@haddock.ISC.COM> <7687@mimsy.UUCP> Organization: Business Management Systems, Inc., Fairfax, VA Lines: 37 Summary: Knuth's example Knuth has an excellent method for converting any program, no matter how convoluted, to perfectly structured code with no goto's. The following pascal template will give you the idea: PROGRAM DOANYTHING; VAR P : INTEGER; BEGIN WHILE P != 0 DO BEGIN IF P = 1 THEN BEGIN (* DO STEP 1 *) P := (* STEP TO PERFORM AFTER 1 *) END; IF P = 2 THEN BEGIN (* DO STEP 2 *) P := (* STEP TO PERFORM AFTER 2 *) END; IF P = 3 THEN BEGIN (* DO STEP 2 *) P := (* STEP TO PERFORM AFTER 3 *) END; (* NOTE: SET P TO 0 WHEN DONE *) END; END. -- Stuart D. Gathman <..!seismo!dgis!bms-at!stuart>