如何在pascal

时间:2018-05-08 09:33:05

标签: arrays pascal freepascal

如何对此进行编码,以便如果元素等于某个值,它将显示一条消息,但如果该数组中的所有元素都不等于该值,那么它会输出“无”?

我试过

for i := 0 to high(array) do
begin
    if (array[i].arrayElement = value) then
    begin
        WriteLn('A message');
    end;
end;

该位有效,但我不知道如何检查所有位。我有这个:

if (array[i].arrayElement to array[high(array)].arrayElement <> value) then
begin
    WriteLn('None');
end;

但它不允许我使用“to”

1 个答案:

答案 0 :(得分:1)

为此编写一个辅助函数是最清楚的:

function ArrayContains(const arr: array of Integer; const value: Integer): Boolean;
var
  i: Integer;
begin
  for i := Low(arr) to High(arr) do
    if arr[i] = value then
    begin
      Result := True;
      Exit;
    end;
  Result := False;
end;

或使用for/in

function ArrayContains(const arr: array of Integer; const value: Integer): Boolean;
var
  item: Integer;
begin
  for item in arr do
    if item = value then
    begin
      Result := True;
      Exit;
    end;
  Result := False;
end;

然后你这样称呼它:

if not ArrayContains(myArray, myValue) then
  Writeln('value not found');