>> >While we're in the same general area, why wasn't the exit statement >> >permitted to exit a block statement? >> >> Having spent a lot of effort to get this to work, I can assure that there >> is no such limitation in Ada 83 or in Ada 95. > >I think you may have misinterpreted the question. > >I suspect the question was why can't you use "exit foo;" to go to >the statement immediately following the end of the enclosing block >named foo, since blocks can have labels just like loops? > >I.e., why is "exit" only defined for loops? Having seen your answer, I think you are correct. I think of a block more or less like an if statement, and I don't think in terms of "exiting" such things. (Loops are special; you have to break the iteration somehow, or you go on forever.) What you're thinking of is more like "return" to me, but calling it that wouldn't be possible. In any case, I think we both agree that such things aren't worth the effort. A few well-placed Gotos handle the rare cases where this is useful. Having said how useless I find a block exit statement, I just noticed that all 5 gotos in Claw (to two labels) are essentially block exits. The labels are on the line after the end of a block, and the gotos go there. Perhaps it would have been useful! :) Randy.