021.枚举类型

with Ada.Text_IO;
use Ada.Text_IO;

procedure Enum is
   
   type DAY is (MON,TUE,WED,THU,FRI,SAT,SUN);
   subtype WORK_DAY is DAY range MON..FRI;
   subtype PLAY_DAY is DAY range SAT..SUN;
   
   type HEAVENLY_BODY is (MOON,SUN,EARTH,MARS);
   Big_Sphere : HEAVENLY_BODY;
   
   package DAY_IO is new Ada.Text_IO.Enumeration_IO(DAY);
   use DAY_IO;
   
   package BODY_IO is new Ada.Text_IO.Enumeration_IO(HEAVENLY_BODY);
   use BODY_IO;
   
   Day_Of_Week:DAY;
   Today      :DAY;
   Happy_Day  :PLAY_DAY;
   Bowling_Day:Day range THU..SAT;
   Index      :Integer;
   
begin
   
   Day_Of_Week :=WED;		-- WED
   Day_Of_Week :=DAY'First;     -- MON
   Day_Of_Week :=DAY'Last;      -- SUN
   Day_Of_Week :=DAY'Pred(Day_Of_Week); -- SAT
   Day_Of_Week :=DAY'Succ(PLAY_DAY'First); -- SUN
   
   Index:=DAY'Pos(MON); -- 0  
   Index:=DAY'Pos(WED); -- 2
   Day_Of_Week := DAY'Val(1); --TUE
   
   
   for Day_Of_Week in WORK_DAY loop
      Put("We are in the workday loop");
      New_Line;
   end loop;
   
   Today:=THU;
   if Today<=WED then
      Put("Early in the week");
      New_Line;
   end if;
   
   if Today>=WED then
      Put("Late in the week");
      New_Line;
   end if;
   
   Today:=SUN;
   Big_Sphere:=SUN;
   
   Today:=Day'(SUN);
   Big_Sphere:=HEAVENLY_BODY'(SUN);
   
   Put(Today);
   Put(DAY'Pred(Today));
   Put_Line(" from the type DAY ");
   Put(Big_Sphere);
   Put(HEAVENLY_BODY'Pred(Big_Sphere));
   Put_Line(" from type Heavenly_body");
   
end Enum;
   
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值