配列の内容を全て判断するには

解決


初心者  2004-01-08 19:41:14  No: 6597

こんにちわ!!
  
  For i := 0 to 配列数 do
  begin
    if bColor[i] = True then
    begin
      // 処理
    end;
  end;

と言う処理をしていて、bColorの中身を全部Trueだったらという処理がしたいのですが、配列を1個づつループして判断すると全部Trueだったらと言う判断が出来ません;;
  誰か教えてください;;お願いします!!


にしの  2004-01-08 19:55:38  No: 6598

こんな感じでしょうか。

var
  IsAllTrue: Boolean;
  i: Integer;
begin
  IsAllTrue := True;
  i := 0;
  for i := 0 to 配列数 - 1 do
  begin
    if bColor[i] then continue;
    IsAllTrue := False;
    Break;
  end;

  if IsAllTrue then
  begin
    //全てTrueだった
  end;


にしの  2004-01-08 19:58:47  No: 6599

上のソース、forの前にあるi := 0;は要りませんでした。
速度を考えなくて良いのであれば、こんなのでもOKです。
前に書いたものは、falseがあればすぐにループを抜けます。

これは、全要素がfalseでも、全てを見ます。
var
  IsAllTrue: Boolean;
  i: Integer;
begin
  IsAllTrue := True;
  for i := 0 to 配列数 - 1 do IsAllTrue := IsAllTrue And bColor[i];

  if IsAllTrue then
  begin
    //全てTrueだった
  end;


初心者  2004-01-08 20:08:02  No: 6600

出来ましたぁぁぁぁ!!!
にしのさんありがとうございました!!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加