H2135 一度も実行されない for/while ループがあります - 削除しました (Delphi)
エラーと警告のメッセージ(Delphi) への移動
コンパイラは指定されたループ構造が 1 回も実行されないと判断し,最適化のためにそのループ構造を削除します。例:
program Produce; (*$HINTS ON*) var i : Integer; begin i := 0; WHILE FALSE AND (i < 100) DO INC(i); end.
{ コンパイラは「FALSE AND (i < 100)」を常に FALSE と評価し,そのループは実行されないと容易に判断する }
program Solve; (*$HINTS ON*) var i : Integer; begin i := 0; WHILE i < 100 DO INC(i); end.
{ while 文を制御する論理式を調べて,常に FALSE になるような状態を回避すれば,このヒントは解決する。for ループでは必ず (上限-下限)>=1 にする }
{ この警告は,for ループによって制御変数が Longint の範囲内の値から範囲外の値へインクリメントされた場合に出力される。次に例を示します。
var I: Cardinal; begin For I := 0 to $FFFFFFFF do ...
{ これはコンパイラの制限によるものだが,for ループのかわりに while ループを使用することで対処できる }