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: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public X-Google-Thread: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public From: "Robert Martin" Subject: Re: Software landmines (loops) Date: 1998/09/06 Message-ID: <6sur5m$n9o$1@hirame.wwa.com>#1/1 X-Deja-AN: 388485061 References: <6rf59b$2ud$1@nnrp1.dejanews.com> <6rfra4$rul$1@nnrp1.dejanews.com> <35DBDD24.D003404D@calfp.co.uk> <6sbuod$fra$1@hirame.wwa.com> <904556531.666222@miso.it.uq.edu.au> <6sgror$je8$3@news.indigo.ie> <6sh3qn$9p2$1@hirame.wwa.com> <6simjo$jnh$1@hirame.wwa.com> <35eeea9b.2174586@news.erols.com> <6sjj7n$3rr$1@hirame.wwa.com> <35f055a5.1431187@news.erols.com> <6sjnlu$83l$1@hirame.wwa.com> <6skfs7$2s6$1@hirame.wwa.com> <35F252DD.5187538@earthlink.net> X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Organization: WorldWide Access - Midwestern Internet Services - www.wwa.com Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-06T00:00:00+00:00 List-Id: Matthew Heaney wrote in message ... >As Bob Eachus pointed out, we can't even agree on what "single exit" >means. According to him, you could interpret that to mean that the >subprogram has a single point of return - to the point of call. Dijkstra was quite specific about it. He drew dotted boxes around the flow charts that depicted the four possible control structures, and showed one line crossing through the top into the control structure, and another leaving the control structure and crossing the dotted line at the bottom. > >I argue against using only a single return statement, because it often >means that you have to do work to do ... nothing. Once I determine my >answer (or satisfy the conditions for loop termination), then I'd rather >return immediately, instead of having to figure out how to navigate my >way to the end of the subprogram. This is effective iff returning immediately is, and always will be, the right thing to do. But if there is a reasonable chance that you will have to do some error handling at some time in the future, then maintaining an se/se style provides place holders for that future code. BTW, that is nothing more than a benefit. One could still make a realistic and valid decision to forego that benefit. Robert C. Martin | Design Consulting | Training courses offered: Object Mentor | rmartin@oma.com | Object Oriented Design 14619 N Somerset Cr | Tel: (800) 338-6716 | C++ Green Oaks IL 60048 | Fax: (847) 918-1023 | http://www.oma.com "One of the great commandments of science is: 'Mistrust arguments from authority.'" -- Carl Sagan