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.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: G. B. Newsgroups: comp.lang.ada Subject: Re: stopping a loop iteration without exiting it Date: Thu, 11 Jan 2018 20:54:45 -0000 (UTC) Organization: A noiseless patient Spider Message-ID: References: <81971548-23c9-4927-a6a8-6f0f1dba896b@googlegroups.com> <5879f25e-c825-4c84-a219-293d1508b33d@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Thu, 11 Jan 2018 20:54:45 -0000 (UTC) Injection-Info: reader02.eternal-september.org; posting-host="c28aeec2484aa615bd5e8a829b4e098e"; logging-data="29777"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/XaRSwSgxMsdBcScd2cwiSVwWSHx8H/J0=" User-Agent: NewsTap/5.3.1 (iPhone/iPod Touch) Cancel-Lock: sha1:JtpgUHS8NGQYAm1tGmCM3OSF93Q= sha1:QmfF2QTQBrX2O9KW8silmM1d1co= Xref: reader02.eternal-september.org comp.lang.ada:49874 Date: 2018-01-11T20:54:45+00:00 List-Id: Dmitry A. Kazakov wrote: >>> I have no idea what this is supposed to mean. >> >> >> L: >> [for|while...] loop >> ... >> goto L; >> ... >> end loop L; >> >> Both outer Ls are part of what indicates the beginning >> and end of the loop, resp. So, as others said in this thread, >> there is syntactical ambiguity when using L with goto. >> The meaning of the goto L is not clear or agreed upon >> either, as readers here have said. > > Substitute "exit" for "goto" and reread your text. When writing, I also thought about “return” and about exceptions, not just about “exit”. But none of them has the potential of driving the iterative process, they just leave it, the building block. It will be over. loop is intended for the opposite, for when it’s not over yet. For when it’s done again. “exit” cannot mean that, but the hypothesized goto can. >> A loop statement is a means of controlling flow. So is goto. >> A loop controls iteration. Suppose that an additional >> goto is needed to express that. Then this thread will >> have discovered that Ada loops are deficient as building >> blocks of iteration. > > Substitute "if" for "goto". Actually, “if” itself cannot directly make the program iterate, unlike “goto”.