From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public From: Stephen Leake Subject: Re: Software landmines (loops) Date: 1998/08/31 Message-ID: #1/1 X-Deja-AN: 386497089 References: <902934874.2099.0.nnrp-10.c246a717@news.demon.co.uk> <6r1glm$bvh$1@nnrp1.dejanews.com> <6r9f8h$jtm$1@nnrp1.dejanews.com> <6renh8$ga7$1@nnrp1.dejanews.com> <6rf59b$2ud$1@nnrp1.dejanews.com> <6rfra4$rul$1@nnrp1.dejanews.com> <35DBDD24.D003404D@calfp.co.uk> <6sbuod$fra$1@hirame.wwa.com> <35f51e53.48044143@news.erols.com> <6sdiav$e0g$1@hirame.wwa.com> Organization: NASA Goddard Space Flight Center -- Greenbelt, Maryland USA Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-08-31T00:00:00+00:00 List-Id: "Robert Martin" writes: > "Structured Programming", Dijkstra, Dahl, Hoare, Academic Press, 1972. p. > 16-23 "7. On Understanding Programs". Actualy this section says that > there are two different kinds of loops. one that is tested at the top; and > another which is tested at the bottom. But in all cases, the elements of > structure programming have a single entry and a single exit. A loop that > exits in the middle, violates this maxim. If there is only one 'exit' statement, why is this bad? loop ... stuff exit when ; ... stuff end loop; One entry, one exit. Perfectly clear. There's nothing magic about putting the exit statement at the top or the bottom! Personally, I _always_ use 'exit' in a non-'for' loop (ie, I never use 'while' or 'until'), precisely because it is clearer what the exit conditions are, and it makes it easier to move processing to before or after the exit as necessary. -- Stephe