while(C++)
カテゴリ
構文
while ( <condition> ) <statement>
説明
while キーワードを使用すると、<条件> に従って <文> を反復実行します。
<ステートメント> は、<条件> の値が false である限り、繰り返し実行されます。
テストは、<ステートメント> が実行される前に施行します。したがって、初回で <条件> が false であると、ループは実行されないことになります。
次の例は、while と do キーワードの使用方法を示しています。
void __fastcall TForm1::Button1Click(TObject *Sender) { TSearchRec sr; int iAttributes = 0; StringGrid1->RowCount = 1; iAttributes |= faReadOnly * CheckBox1->Checked; iAttributes |= faHidden * CheckBox2->Checked; iAttributes |= faSysFile * CheckBox3->Checked; iAttributes |= faVolumeID * CheckBox4->Checked; iAttributes |= faDirectory * CheckBox5->Checked; iAttributes |= faArchive * CheckBox6->Checked; iAttributes |= faAnyFile * CheckBox7->Checked; StringGrid1->RowCount = 0; if (FindFirst(Edit1->Text, iAttributes, sr) == 0) { do { if ((sr.Attr & iAttributes) == sr.Attr) { StringGrid1->RowCount = StringGrid1->RowCount + 1; StringGrid1->Cells[1][StringGrid1->RowCount-1] = sr.Name; StringGrid1->Cells[2][StringGrid1->RowCount-1] = IntToStr(sr.Size); } } while (FindNext(sr) == 0); FindClose(sr); } }
次の例は、while キーワードの使用方法を示しています。
void __fastcall TForm1::Button1Click(TObject *Sender) { int Result = 0; int I = 0; TColor RealColor = Graphics::ColorToRGB(Form1->Color); while (I < NumPaletteEntries) { TColor paletteColor = RGB( FPaletteEntries[I].peRed, FPaletteEntries[I].peGreen, FPaletteEntries[I].peBlue); if (RealColor == paletteColor) { Label1->Caption = IntToStr(I); RedEdit->Text = IntToStr(FPaletteEntries[I].peRed); GreenEdit->Text = IntToStr(FPaletteEntries[I].peGreen); BlueEdit->Text = IntToStr(FPaletteEntries[I].peBlue); break; } I++; }; }