with Ada.Text_IO, Ada.Integer_Text_IO;
use Ada.Text_IO, Ada.Integer_Text_IO;
procedure Loopsinada is
Index, Count,for_first,for_last : INTEGER;
type my_range is range 2..4 ;
package MY_OWN_TYPE is new Ada.Text_IO.Integer_IO(my_range);
use MY_OWN_TYPE;
begin
put_line("enter user defines for range:");
get(for_first);
get(for_last);
new_line;
Index := 1;
loop -- This is the simplest loop
Put("Index =");
Put(Index, 5);
New_Line;
Index := Index + 1;
exit when Index = 4;
end loop;
new_line;
Index := 1;
loop -- Another simplest loop
Put("Index =");
Put(Index, 5); New_Line;
Index := Index * 2;
if Index = 8 then exit; end if;
end loop;
new_line;
Count := 48;
while Count > 5 loop -- This is the while loop
Put("Count =");
Put(Count, 5);
New_Line;
Count := Count /2;
end loop;
new_line;
for Index in 1..4 loop -- This is the for loop
Put("Doubled index =");
Put(2 * Index, 5);
New_Line;
end loop;
new_line;
for Count in reverse 5..9 loop -- This is the reverse for loop
Put("Minus count =");
Put(Count-1, 5); New_Line;
end loop;
new_line;
for count in my_range loop-- user specified type
put("user count = ");
put(count*4,5);
new_line;
end loop;
new_line;
for count in for_first..for_last loop-- user specified type
put("half count = ");
put(count,5);
new_line;
end loop;
new_line;
for Index in 7..11 loop -- An empty loop
null;
end loop;
end Loopsinada;
d2l0aCBBZGEuVGV4dF9JTywgQWRhLkludGVnZXJfVGV4dF9JTzsKdXNlIEFkYS5UZXh0X0lPLCBBZGEuSW50ZWdlcl9UZXh0X0lPOwogCnByb2NlZHVyZSBMb29wc2luYWRhIGlzCkluZGV4LCBDb3VudCxmb3JfZmlyc3QsZm9yX2xhc3QgOiBJTlRFR0VSOwp0eXBlIG15X3JhbmdlIGlzIHJhbmdlIDIuLjQgOwpwYWNrYWdlIE1ZX09XTl9UWVBFIGlzIG5ldyBBZGEuVGV4dF9JTy5JbnRlZ2VyX0lPKG15X3JhbmdlKTsKdXNlIE1ZX09XTl9UWVBFOwpiZWdpbgpwdXRfbGluZSgiZW50ZXIgdXNlciBkZWZpbmVzIGZvciByYW5nZToiKTsKZ2V0KGZvcl9maXJzdCk7CmdldChmb3JfbGFzdCk7CiAKbmV3X2xpbmU7CkluZGV4IDo9IDE7Cmxvb3AgLS0gVGhpcyBpcyB0aGUgc2ltcGxlc3QgbG9vcApQdXQoIkluZGV4ID0iKTsKUHV0KEluZGV4LCA1KTsgCk5ld19MaW5lOwpJbmRleCA6PSBJbmRleCArIDE7CmV4aXQgd2hlbiBJbmRleCA9IDQ7CmVuZCBsb29wOwpuZXdfbGluZTsKIApJbmRleCA6PSAxOwpsb29wIC0tIEFub3RoZXIgc2ltcGxlc3QgbG9vcApQdXQoIkluZGV4ID0iKTsKUHV0KEluZGV4LCA1KTsgTmV3X0xpbmU7CkluZGV4IDo9IEluZGV4ICogMjsKaWYgSW5kZXggPSA4IHRoZW4gZXhpdDsgZW5kIGlmOwplbmQgbG9vcDsKbmV3X2xpbmU7CiAKQ291bnQgOj0gNDg7CndoaWxlIENvdW50ID4gNSBsb29wIC0tIFRoaXMgaXMgdGhlIHdoaWxlIGxvb3AKUHV0KCJDb3VudCA9Iik7ClB1dChDb3VudCwgNSk7IApOZXdfTGluZTsKQ291bnQgOj0gQ291bnQgLzI7CmVuZCBsb29wOwpuZXdfbGluZTsKIApmb3IgSW5kZXggaW4gMS4uNCBsb29wIC0tIFRoaXMgaXMgdGhlIGZvciBsb29wClB1dCgiRG91YmxlZCBpbmRleCA9Iik7ClB1dCgyICogSW5kZXgsIDUpOyAKTmV3X0xpbmU7CmVuZCBsb29wOwpuZXdfbGluZTsKIApmb3IgQ291bnQgaW4gcmV2ZXJzZSA1Li45IGxvb3AgLS0gVGhpcyBpcyB0aGUgcmV2ZXJzZSBmb3IgbG9vcApQdXQoIk1pbnVzIGNvdW50ID0iKTsKUHV0KENvdW50LTEsIDUpOyBOZXdfTGluZTsKZW5kIGxvb3A7Cm5ld19saW5lOwogCmZvciBjb3VudCBpbiBteV9yYW5nZSBsb29wLS0gdXNlciBzcGVjaWZpZWQgdHlwZQpwdXQoInVzZXIgY291bnQgPSAiKTsKcHV0KGNvdW50KjQsNSk7Cm5ld19saW5lOwplbmQgbG9vcDsKbmV3X2xpbmU7Cgpmb3IgY291bnQgaW4gZm9yX2ZpcnN0Li5mb3JfbGFzdCBsb29wLS0gdXNlciBzcGVjaWZpZWQgdHlwZQpwdXQoImhhbGYgY291bnQgPSAiKTsKcHV0KGNvdW50LDUpOwpuZXdfbGluZTsKZW5kIGxvb3A7Cm5ld19saW5lOwoKCiAKZm9yIEluZGV4IGluIDcuLjExIGxvb3AgLS0gQW4gZW1wdHkgbG9vcApudWxsOwplbmQgbG9vcDsKZW5kIExvb3BzaW5hZGE7