zoukankan      html  css  js  c++  java
  • 在 Delphi 2009 中, 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 := 0;
      for 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 := 0;
      for 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 := 0;
      for elem in set1 do Inc(count);
      ShowMessage(IntToStr(count)); {2}
    
      set2 := [Red..Yellow];
      count := 0;
      for 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;
    

    上面是我能够想到的, 还有吗? 帮我想想.

  • 相关阅读:
    写在最顶部
    新一轮的战斗。
    Codeforces Round #180
    git学习笔记
    感悟、方向、计划
    .NET (c#)序列化和反序列化
    类的序列化发送和接受
    Log4Net: TextBoxBaseAppender
    任何成功不能只靠自己一个人
    技术问题,总是在短期被高估,在长期被低估
  • 原文地址:https://www.cnblogs.com/del/p/1332011.html
Copyright © 2011-2022 走看看