TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Randy Brukardt <[log in to unmask]>
Reply To:
Randy Brukardt <[log in to unmask]>
Date:
Thu, 19 Mar 1998 18:54:19 -0600
Content-Type:
text/plain
Parts/Attachments:
text/plain (33 lines)
>> >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.

ATOM RSS1 RSS2