From: jimmaureenrogers@worldnet.att.net (Jim Rogers)
Subject: Re: "continue/next" for "loop"
Date: 5 Nov 2003 06:45:56 -0800
Date: 2003-11-05T06:45:56-08:00 [thread overview]
Message-ID: <82347202.0311050645.88a1411@posting.google.com> (raw)
In-Reply-To: slrnbqckoa.m1.lutz@taranis.iks-jena.de
Lutz Donnerhacke <lutz@iks-jena.de> wrote in message news:<slrnbqckoa.m1.lutz@taranis.iks-jena.de>...
> But both are the result of an oversimplification!
>
> outer: loop
> inner: loop
> Complex_Actions_1;
> if First_Condition then
> Some_Justify_Actions;
> goto next_outer;
> end if;
> Complex_Actions_2;
> if Second_Condition then
> Some_Other_Justify_Actions;
> goto next_outer;
> end if;
> Complex_Actions_3;
> end loop inner;
> Complex_End_Statments;
> exit outer when Other_Condition;
> More_Statments;
>
> <<next_outer>> null;
> end loop outer;
>
> I'd like to find a more amazing version of this braindead goto.
> Please do not assume, that I'm too stupid to invert a condition in a
> simplified example. IT'S NOT HOMEWORK!
Upon further consideration of your example above I see that you could
look upon the early break out of the inner loop as an exceptional condition,
or as a set of exceptional conditions. Given this, another solution is
the use of exceptions.
First_Condition_Exception : Exception;
Second_Condition_Exception : Exception;
outer: loop
begin
inner: loop
Complex_Actions_1;
if First_Condition then
raise First_Condition_Exception;
end if;
Complex_Actions_2;
if Second_Condition then
raise Second_Condition_Exception;
end if;
Complex_Actions_3;
end loop inner;
Complex_End_Statments;
exit outer when Other_Condition;
More_Statments;
Exception
when First_Condition_Exception =>
Some_Justify_Actions;
when Second_Condition_Exception =>
Some_Other_Justify_Actions;
end;
end loop outer;
Jim Rogers
next prev parent reply other threads:[~2003-11-05 14:45 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-03 12:55 "continue/next" for "loop" amado.alves
2003-11-03 13:06 ` Lutz Donnerhacke
2003-11-03 13:07 ` Lutz Donnerhacke
2003-11-03 13:25 ` Peter Hermann
2003-11-03 16:49 ` Robert I. Eachus
2003-11-03 18:21 ` (see below)
2003-11-03 18:52 ` Jeffrey Carter
2003-11-03 20:11 ` Lutz Donnerhacke
2003-11-04 1:23 ` Robert I. Eachus
2003-11-03 13:33 ` James Rogers
2003-11-03 13:46 ` Lutz Donnerhacke
2003-11-03 13:39 ` Dmitry A. Kazakov
2003-11-03 13:54 ` Ole-Hjalmar Kristensen
2003-11-03 14:56 ` Lutz Donnerhacke
2003-11-03 15:08 ` Stefan Lucks
2003-11-03 15:40 ` Lutz Donnerhacke
2003-11-05 10:36 ` Charles Lindsey
2003-11-05 18:05 ` Lutz Donnerhacke
2003-11-06 9:48 ` Martin Dowie
2003-11-07 14:54 ` Charles Lindsey
2003-11-07 16:24 ` Martin Dowie
2003-11-07 17:34 ` Jeffrey Carter
2003-11-05 14:45 ` Jim Rogers [this message]
-- strict thread matches above, loose matches on Subject: below --
2003-11-03 15:44 amado.alves
2003-11-03 22:12 ` Dmytry Lavrov
2003-11-03 22:27 ` Gautier Write-only
2003-11-03 13:54 amado.alves
2003-11-03 13:45 christoph.grein
2003-11-03 14:23 ` Preben Randhol
2003-11-03 15:01 ` Lutz Donnerhacke
2003-11-03 15:19 ` Dmitry A. Kazakov
2003-11-03 18:33 ` Chad R. Meiners
2003-11-03 15:48 ` Preben Randhol
2003-11-03 18:50 ` Georg Bauhaus
2003-11-03 15:00 ` Lutz Donnerhacke
2003-11-03 10:48 Lutz Donnerhacke
2003-11-03 10:51 ` Preben Randhol
2003-11-03 10:55 ` Preben Randhol
2003-11-03 11:01 ` Lutz Donnerhacke
2003-11-04 3:11 ` Steve
2003-11-05 15:54 ` sk
2003-11-06 15:40 ` Stephen Leake
2003-11-06 18:27 ` sk
2003-11-06 15:39 ` Stephen Leake
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox