For in Ada

Different Types of for Loops in Ada

Ada’s looping constructs offer a versatile range of loop types similar in functionality. Here’s how you can achieve different types of looping constructs in Ada.

Basic Loop with a Single Condition

The most basic loop type uses a condition to control the repetition.

with Ada.Text_IO; use Ada.Text_IO;

procedure Main is
begin
    declare
        I : Integer := 1;
    begin
        while I <= 3 loop
            Put_Line(Integer'Image(I));
            I := I + 1;
        end loop;
    end;
end Main;

Classic Initial/Condition/Iteration Loop

This type of loop explicitly initializes the loop variable, checks the condition, and updates the variable after each iteration.

with Ada.Text_IO; use Ada.Text_IO;

procedure Main is
begin
    for J in 0 .. 2 loop
        Put_Line(Integer'Image(J));
    end loop;
end Main;

Iteration Using for Loop Range

Ada’s for loop can also iterate over a range with ease which is similar to iteration using range.

with Ada.Text_IO; use Ada.Text_IO;

procedure Main is
begin
    for I in 0 .. 2 loop
        Put_Line("range" & Integer'Image(I));
    end loop;
end Main;

Infinite Loop with break Equivalent

A loop without a condition will repeat indefinitely until it encounters an exit statement to break out of the loop (equivalent to break).

with Ada.Text_IO; use Ada.Text_IO;

procedure Main is
begin
    loop
        Put_Line("loop");
        exit;
    end loop;
end Main;

Using continue Equivalent in a Loop

In Ada, the concept of continue is achieved using exit when followed by the condition you’d like to skip.

with Ada.Text_IO; use Ada.Text_IO;

procedure Main is
begin
    for N in 0 .. 5 loop
        if N mod 2 = 0 then
            -- Continue to the next iteration
            null;
        else
            Put_Line(Integer'Image(N));
        end if;
    end loop;
end Main;

Running the Ada Program

To run an Ada program, you need to compile the .adb file yielding an executable which can then be run.

$ gnatmake main.adb
$ ./main

Expected output for running the compiled program:

1
2
3
0
1
2
range 0
range 1
range 2
loop
1
3
5

Gaining familiarity with these looping constructs will help in writing efficient Ada programs. In future examples, we’ll explore more detailed structures and functionalities in the language.

查看推荐产品

Comments powered by Disqus