首页 > 代码库 > 【转】for in 循环的用法

【转】for in 循环的用法

一、遍历 TStrings


var  List: TStrings;  s: string;begin  List := TStringList.Create;  List.CommaText := ‘aaa,bbb,ccc‘for s in List do    ShowMessage(s);  List.Free;end;


二、遍历数组


var  Arr: array[0..2] of Byte;  i: Integer;  b: Byte;begin  for i := Low(Arr) to High(Arr) do    Arr[i] := Random(MAXBYTE);  for b in Arr do    ShowMessage(IntToStr(b));end;


三、遍历子界


{例1}var  sub: 0..9;  str: string;begin  str := ‘‘for sub in [Low(sub)..High(sub)] do    str := str + IntToStr(sub);   ShowMessage(str); {0123456789}end;{例2}type  TSub = ‘A‘..‘G‘;var  sub: TSub;  str: string;begin  str := ‘‘for sub in [Low(sub)..High(sub)] do    str := str + sub;   ShowMessage(str); {ABCDEFG}end;{例3}var  sub: Byte; {Byte 应该算是个 0..255 的子界}  num: Cardinal;begin  num := 0for sub in [Low(sub)..High(sub)] do    Inc(num, sub);   ShowMessage(IntToStr(num)); {32640}end;


四、遍历枚举


type  TEnum = (Red,Green,Blue);var  enum: TEnum;  count: Integer;begin  count := 0for enum in [Low(enum)..High(enum)] do    Inc(count);  ShowMessage(IntToStr(count)); {3}end;


五、遍历集合


type  TEnum = (Red,Green,Blue,Yellow);  TSet = set of TEnum;var  set1: set of TEnum;  set2: TSet;  elem: Tenum;  count: Integer;begin  set1 := [Red, Yellow];  count := 0for elem in set1 do Inc(count);  ShowMessage(IntToStr(count)); {2}  set2 := [Red..Yellow];  count := 0for elem in set2 do Inc(count);  ShowMessage(IntToStr(count)); {4}end;


六、遍历字符串


var  str: string;  c: Char;begin  str := ‘ABCD‘for c in str do     ShowMessage(c);end;

【转】for in 循环的用法