検討:
{$R+}
i:= 1;
While i > 0 do
i:= i + 1;
ShowMessage(IntToStr(i));
i
Byte、Word、Shortint、または TinyInt として宣言すると、予想どおり、範囲チェック エラーが発生します。i
LongWord、Cardinal、Integer、LongInt、または Int64 として宣言すると、while ループを通過するだけで、上限を超えたときに取得される負または 0 の値が表示さi
れます。
Delphi 7 は、32 ビットおよび 64 ビットの数値の範囲チェックをサポートしていませんか?