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;