The Ada Program: telephone.adb
1 -- telephone.adb: example use of the case statement
2
3 with Ada.Text_IO;
4 use Ada;
5
6 procedure Telephone is
7
8 Letter: Character;
9
10 procedure Put (C, D: in Character) is
11 begin
12 Text_IO.Put ("The letter '" & C & ''');
13 Text_IO.Put ("corresponds to '" & D & "' on the telephone.");
14 Text_IO.New_Line;
15 end Put;
16
17 begin
18
19 Input: loop
20
21 Text_IO.Put ("Enter a letter -- ");
22 Text_IO.Get (Letter);
23 Text_IO.Skip_Line;
24
25 exit Input when Letter = 'Q' or else Letter = 'Z';
26
27 case Letter is
28 when 'A' | 'B' | 'C' => Put (Letter, '2');
29 when 'D' | 'E' | 'F' => Put (Letter, '3');
30 when 'G' | 'H' | 'I' => Put (Letter, '4');
31 when 'J' | 'K' | 'L' => Put (Letter, '5');
32 when 'M' | 'N' | 'O' => Put (Letter, '6');
33 when 'P' | 'R' | 'S' => Put (Letter, '7');
34 when 'T' | 'U' | 'V' => Put (Letter, '8');
35 when 'W' | 'X' | 'Y' => Put (Letter, '9');
36 when others => Text_IO.Put_Line ("Invalid input letter");
37 end case;
38
39 end loop Input;
40
41 end Telephone;