comp.lang.ada
 help / color / mirror / Atom feed
From: Bill Findlay <yaldnifw@blueyonder.co.uk>
Subject: Re: ada loops
Date: Fri, 30 May 2003 17:00:53 +0100
Date: 2003-05-30T17:00:53+01:00	[thread overview]
Message-ID: <BAFD3EC5.2E54%yaldnifw@blueyonder.co.uk> (raw)
In-Reply-To: d3ba4d4c.0305300744.520de992@posting.google.com

On 30/5/03 16:44, in article
d3ba4d4c.0305300744.520de992@posting.google.com, "Roman V. Isaev"
<rm@gunlab.com.ru> wrote:

> I've got bitten by this (code was translated from pascal by p2ada, so
> please don't bash using goto):
> 
>     for Ijk in 1 .. 40 loop
>        Sss:=Fnmis-Si(Ijk);
>        if  Sss<0.0 then
>           goto Label_1;
>        end if;
>     end loop; --  IJK
>     <<Label_1>>    null;
> 
> Before the loop Ijk is 0, after the loop Ijk is still 0. Huh? Why? I
> replaced Ijk with temp variable and put Ijk := temp before goto and
> it solved the problem, but why we can't have final value when we break
> out of the loop? What's the logic behind this language behaviour?

P2Ada has mis-translated your Pascal program.
In Pascal, the Ijk variable was used and updated by the Pascal for loop.
In Ada, loop-controlled "variables" are actually local constants of the loop
body. Thus your (mis-)translated code has TWO objects called Ijk: the one
appearing outside the loop, and declared by you; and the one appearing
inside the loop and declared by the loop command.

-- 
Bill-Findlay chez blue-yonder.co.uk ("-" => "")





  reply	other threads:[~2003-05-30 16:00 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-30 15:44 ada loops Roman V. Isaev
2003-05-30 16:00 ` Bill Findlay [this message]
2003-05-30 16:17 ` Robert A Duff
2003-05-30 16:46   ` Bill Findlay
2003-05-30 16:51   ` Bill Findlay
2003-05-30 17:25 ` Stephen Leake
2003-05-30 19:40   ` Robert A Duff
2003-05-30 21:33     ` Pascal Obry
2003-05-31 16:19       ` Robert A Duff
2003-05-31 16:29       ` Robert A Duff
2003-05-30 21:38     ` Simon Wright
2003-05-30 21:51       ` chris.danx
2003-05-31  6:40         ` Pascal Obry
2003-05-31 16:21         ` Robert A Duff
2003-06-02 16:39       ` Stephen Leake
2003-05-31 16:24     ` Oliver Kellogg
2003-05-31 23:15       ` Preben Randhol
2003-06-05  5:14   ` Dave Thompson
2003-06-05 18:15     ` 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