Go lets you say "Loop: for ..." and then "break Loop". -rob On Wed, Dec 2, 2020 at 3:40 AM wrote: > > On Tue, Dec 1, 2020 at 8:39 AM wrote: > > > It was recognized that goto was not necessary if one had proper control > > > structures in a language (if/else, while), and that code with no (or > > > minimal) gotos was easier to read and understand. > > Warner Losh wrote: > > This is true for simple flow control. However, when you had to break out > of > > multiple levels, or continue not the inner loop, but the middle loop, the > > use of extra booleans sure made the code less understandable than a > 'goto' > > a label that stood in for that purpose... This was something that wasn't > > well understood by language designers, and even today C and C++ neither > > have good flow control beyond the basics. Even though both break and > > continue could take an optional count without breaking old code.... > > Quite true. Modern Bourne shells let you supply a number to break and > continue to specify how many loops to break. Ada, or maybe it was one of > the Modula-X languages, let you put a label on a loop so that you could > say `continue outer' or `break outer' and not need the booleans. > > This is something that newer languages (C#, Java, Go, ...) could have > picked > up but didn't, which I think is too bad. > > Arnold >