1.枚舉類型定義:
TYPE
days = (Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday); //枚舉類型,屬於順序類型,序號從0開始
colors =(red,yellow,blue,green,black); //可以同時多個枚舉類型定義
//下面定義方法是錯誤的
days_e1 =('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'); //錯誤:枚舉類型元素只能是標識符;
days_e2 =(1,2,3,4,5,6,7); //錯誤:枚舉類型元素只能是標識符;
colors_e1=(red,yellow,white)//錯誤:枚舉類型中元素不能和其他的元素相同;
days = (Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday); //枚舉類型,屬於順序類型,序號從0開始
colors =(red,yellow,blue,green,black); //可以同時多個枚舉類型定義
//下面定義方法是錯誤的
days_e1 =('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'); //錯誤:枚舉類型元素只能是標識符;
days_e2 =(1,2,3,4,5,6,7); //錯誤:枚舉類型元素只能是標識符;
colors_e1=(red,yellow,white)//錯誤:枚舉類型中元素不能和其他的元素相同;
2.類型類型可以用 順數函數ord,pred,succ,low,high操作
var
week : days;
color : colors;
temp :Variant;
begin
// temp:=Ord(Monday); //返回 1
// temp:=Pred(Tuesday); //返回 1
// temp:=Pred(Sunday); //返回 255
// temp:=Succ(Tuesday); //返回 3
// temp:=Succ(saturday); //返回 7
// temp:=Low(week); //返回 0
// temp:=High(week); //返回 6
ShowMessage(temp);
end;
3.枚舉類型變量只能進行賦值運算和關系運算,不能進行算術運算和邏輯運算。
//合法性:
week := Sunday;
if week=Sunday then write('rest');
//不合法的:
Sunday := 1; //錯把枚舉值當成變量名;
days := blue; //枚舉值blue不屬於枚舉變量weekday的值域;
read(color); //枚舉類型變量 不能用讀語句進行賦值;
write(week); writeln(blue);//不能通過寫語句輸出枚舉類型的變量值和枚舉值。
4.枚舉類型應用:
temp:=StrToInt(Edit1.Text);
case temp of
0:week:=Sunday;
1:week:=Monday;
2:week:=Tuesday;
3:week:=Wednesday;
4:week:=Thursday;
5:week:=Friday;
6:week:=Saturday;
end;
