如何限制循环只打印列表中的前几条记录?
How to limit for loop to print only first few records in list?
我应该如何在 Delphi 中使用 for 循环打印列表中的前 5 个元素。以下是我创建的示例:
p := ['a','b','c','d','e','f','g','h','i'];
for P in p do begin
showMessage(P);
end
通过使用它,我能够打印列表中的所有元素,但我只想打印前 5 个。如果您知道答案,请提供帮助。谢谢
为了保留 for .. in
方法,您可以使用计数器变量:
var
Count : Integer;
begin
p := ['a','b','c','d','e','f','g','h','i'];
Count := 0;
for P in p do
begin
if Count < 5 then
begin
ShowMessage(P);
Inc(Count);
end;
end;
end;
或者,更优雅地,使用标准 for index
循环:
var
I : Integer;
begin
p := ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'];
for I := 0 to High(p) do
begin
if I < 5 then
ShowMessage(p[I]);
end;
end;
下面的代码就可以了。它利用从 0(数组的第一个元素)到 4(获取前 5 个元素)循环的索引变量。
var
I : Integer;
begin
var p := ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'];
for I := 0 to 4 do
ShowMessage(p[I]);
end;
在其他情况下,由于数组边界不限于从 0 开始,并且为了避免超出范围,您可以像这样使用函数 Low()、High() 和 Min():
for I := Low(p) to Min(Low(p) + 4, High(p)) do // 5 items at most
ShowMessage(p[I]);
要使用 Min()
,您必须在 uses 子句中添加 System.Math
。
我应该如何在 Delphi 中使用 for 循环打印列表中的前 5 个元素。以下是我创建的示例:
p := ['a','b','c','d','e','f','g','h','i'];
for P in p do begin
showMessage(P);
end
通过使用它,我能够打印列表中的所有元素,但我只想打印前 5 个。如果您知道答案,请提供帮助。谢谢
为了保留 for .. in
方法,您可以使用计数器变量:
var
Count : Integer;
begin
p := ['a','b','c','d','e','f','g','h','i'];
Count := 0;
for P in p do
begin
if Count < 5 then
begin
ShowMessage(P);
Inc(Count);
end;
end;
end;
或者,更优雅地,使用标准 for index
循环:
var
I : Integer;
begin
p := ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'];
for I := 0 to High(p) do
begin
if I < 5 then
ShowMessage(p[I]);
end;
end;
下面的代码就可以了。它利用从 0(数组的第一个元素)到 4(获取前 5 个元素)循环的索引变量。
var
I : Integer;
begin
var p := ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'];
for I := 0 to 4 do
ShowMessage(p[I]);
end;
在其他情况下,由于数组边界不限于从 0 开始,并且为了避免超出范围,您可以像这样使用函数 Low()、High() 和 Min():
for I := Low(p) to Min(Low(p) + 4, High(p)) do // 5 items at most
ShowMessage(p[I]);
要使用 Min()
,您必须在 uses 子句中添加 System.Math
。