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: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public From: Matthew Heaney Subject: Re: Software landmines (loops) Date: 1998/09/06 Message-ID: #1/1 X-Deja-AN: 388437748 Sender: matt@mheaney.ni.net 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> NNTP-Posting-Date: Sun, 06 Sep 1998 09:44:51 PDT Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-06T00:00:00+00:00 List-Id: Charles Hixson writes: > Early returns from routines frequently make them easier to understand. > And maintain. Se/se is something that is worth moderate efforts. It > is, however, related to something else. Something that I don't yet have > words to wrap around, but lots of other people on this list seem to also > feel it. 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. According to that interpretation, multiple returns from a subprogram do indeed have a single exit, and thus fall under the rubric of "structured programming." 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.