From: "chad" <crmeiners@hotmail.com>
Subject: Re: checking a loop execution
Date: 2000/04/20
Date: 2000-04-20T00:00:00+00:00 [thread overview]
Message-ID: <38fece05.0@silver.truman.edu> (raw)
In-Reply-To: 8dl76u$etf$1@nnrp1.deja.com
The following code does what you want:
declare
Index : Integer := 1;
Interupted : Boolean := False;
begin
loop
Interupted := <Condition>;
exit when Interupted or else (Index = 10);
Index := Index + 1;
end loop;
if Interupted then
Put_Line("Loop interupted at :" & Integer'Image(Index));
else
Put_Line("Loop was not interupted.");
end if;
end;
Although the above code seems a little verboes, I feel that it makes the
logic clearer.
<pumilia@my-deja.com> wrote in message news:8dl76u$etf$1@nnrp1.deja.com...
> Is there a way to check if a loop has been exited before completion or
> if all iterations have been performed?
> In fortran the loop index is increased one last time, at the end of
> the loop, but in Ada that trick cannot be exploited; the index is not
> even defined outside the loop.
> I could add a control variable (ivar, in my example) to take care of the
> iteration number when exiting, but that would decrease the peformance
> of my algorithm
>
> Example
>
> procedure loop_test is
>
> ivar : integer;
>
> begin
> for i in 1 .. 10 loop
> if <condition> then
> ivar := i;
> exit ;
> end if ;
> end loop;
> put(ivar,2);
> end loop_test;
>
>
>
> thank you for your suggestions
>
> Pol
>
>
> Sent via Deja.com http://www.deja.com/
> Before you buy.
next prev parent reply other threads:[~2000-04-20 0:00 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-04-19 0:00 checking a loop execution pumilia
2000-04-19 0:00 ` DuckE
2000-04-20 0:00 ` Geoff Bull
2000-04-20 0:00 ` chad [this message]
2000-04-21 0:00 ` Robert Dewar
2000-04-22 0:00 ` Chad R. Meiners
2000-04-23 0:00 ` Robert Dewar
2000-04-24 0:00 ` Ehud Lamm
2000-04-24 0:00 ` Ehud Lamm
2000-04-24 0:00 ` Bill Greene
2000-04-21 0:00 ` Robert Dewar
2000-04-20 0:00 ` tmoran
2000-04-20 0:00 ` Charles Hixson
2000-04-20 0:00 ` Andreas Schulz
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox