-- Variations of for loops

with ada.text_io; use ada.text_io; 
with ada.integer_text_io; use ada.integer_text_io; 
 
procedure loops2  is 
    first, last: Integer;
begin
    -- Print 2 Positives and 2 negatives, in REVERSE
    for j in reverse -2 .. 2 loop  
        put(j);
    end loop;
    new_line;

    -- Empty range - prints nothing.  Gives compiler warning
    for j in 10 .. 1 loop
        put(j);
    end loop;

    -- Empty range - prints nothing.  Gives compiler warning
    for j in reverse 10 .. 1 loop
        put(j);
    end loop;

    -- Variables for range limits
    first := 1;
    last := 3;
    for j in reverse first .. last loop
        put(j);
    end loop;
    new_line;

    -- Empty range - prints nothing.  Variables for limits.
    first := 1;
    last := 3;
    for j in last .. first loop
        put(j);
    end loop;

end loops2;
-- Output:
--|          2          1          0         -1         -2
--|          3          2          1