Jean-Pierre Rosen wrote:
> > declare
> > D : Some_Decrete_Type := Left;
> > begin
> > while D <= Right loop
> > sequence_of_statements
> > D := Some_Decrete_Type'Succ (D);
> > end loop;
> > end;
> >
> FYI: this equivalence is wrong, a for loop is never equivalent to a while loop (unlike what C people think)
> Hint: look at what happens when D=Some_Discrete_Type'Last
Yes, you are right. Thank you.
This is my silly bug.
How about if rewriting like below ?
if Left <= Right then
declare
D : Some_Decrete_Type := Left;
begin
loop
sequence_of_statements
exit when D >= Right;
D := Some_Decrete_Type'Succ (D);
end loop;
end
end if;
Regards,
--
------------------------------------------------------------------------
Toshitaka KUMANO <[log in to unmask]>