5.5 Loop Statements
Syntax
Static Semantics
Dynamic Semantics
7  The 
discrete_subtype_definition 
of a for loop is elaborated just once. Use of the reserved word 
reverse 
does not alter the discrete subtype defined, so that the following 
iteration_schemes 
are not equivalent; the first has a null range. 
 
for J in reverse 1 .. 0
for J in 0 .. 1
Examples
Example of a loop 
statement without an iteration scheme: 
loop
   Get(Current_Character);
   exit when Current_Character = '*';
end loop;
Example of a 
loop statement with a while iteration scheme: 
while Bid(N).Price < Cut_Off.Price loop
   Record_Bid(Bid(N).Price);
   N := N + 1;
end loop;
Example of a 
loop statement with a for iteration scheme: 
for J in Buffer'Range loop     --  works even with a null range
   if Buffer(J) /= Space then
      Put(Buffer(J));
   end if;
end loop;
Example of a 
loop statement with a name: 
Summation:
   while Next /= Head 
loop       --
 see 3.10.1
      Sum  := Sum + Next.Value;
      Next := Next.Succ;
   
end loop Summation;
 
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe