-- Three kinds of loops
with ada.text_io; use ada.text_io;
with ada.integer_text_io; use ada.integer_text_io;
procedure loops1 is
i: Integer;
p: Positive;
s: Natural := 0;
begin
-- Sum first 10 Positives
for j in 1 .. 10 loop -- Implicit declaration
s := s + j;
end loop;
put_line(s'img);
-- put_line(j'img); -- Compilation error
-- Sum second 10 Positives
s := 0;
p := 11;
while p <= 20 loop
s := s + p;
p := p + 1;
end loop;
put_line(s'img);
-- Sum some numbers from input
s := 0;
loop
get(i);
exit when i < 0;
s := s + i;
end loop;
put_line(s'img);
end loops1;
-- Input: 3 5 11 -1
-- Output:
--| 55
--| 155
--| 19