加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi for..in循环集枚举顺序

发布时间:2020-12-15 04:27:13 所属栏目:大数据 来源:网络整理
导读:我想迭代一组特定的值.下面简单的例子 program Project1;{$APPTYPE CONSOLE}var a,b: word; wait: string;begin a := 0; for b in [1,5,10,20] do begin a := a + 1; writeln('Iteration = ',a,',value = ',b); end; read(wait); end. 这里的示例代码是我期
我想迭代一组特定的值.下面简单的例子
program Project1;
{$APPTYPE CONSOLE}

var
  a,b: word;
  wait: string;

begin
  a := 0;
  for b in [1,5,10,20] do
  begin
    a := a + 1;
    writeln('Iteration = ',a,',value = ',b);
  end;

  read(wait); 

end.

这里的示例代码是我期望的,并产生以下内容

迭代= 1,值= 1

迭代= 2,值= 5

迭代= 3,值= 10

迭代= 4,值= 20

现在如果我改变集合的顺序

for b in [20,1] do

输出与原始输出相同,即不保留值的顺序.

实现这一点的最好方法是什么?

解决方法

集合不是订购的容器.您不能更改集合内容的顺序. for-in循环总是以数字顺序迭代集合.

如果您需要一个有序的数字列表,则可以使用数组或TList< Integer>.

var
  numbers: array of Word;
begin
  SetLength(numbers,4);
  numbers[0] := 20;
  numbers[1] := 10;
  numbers[2] := 5;
  numbers[3] := 1;
  for b in numbers do begin
    Inc(a);
    Writeln('Iteration = ',b);
  end;
end.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读