H2135 FOR oder WHILE Schleife wird nicht durchlaufen - gelöscht (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Der Compiler hat festgestellt, dass die angegebene Schleife nie durchlaufen wird. Daher wurde sie aus Optimierungsgründen entfernt. Beispiel:


program Produce;
(*$HINTS ON*)

  var
    i : Integer;

begin
  i := 0;
  WHILE FALSE AND (i < 100) DO
    INC(i);
end.

Der Compiler stellt fest, dass 'FALSE AND (i < 100)' immer False ergibt und die Schleife daher nie zur Ausführung kommt.


program Solve;
(*$HINTS ON*)

  var
    i : Integer;

begin
  i := 0;
  WHILE i < 100 DO
    INC(i);
end.

Prüfen Sie, ob der Boolesche Ausdruck, der die Schleife steuert, nicht grundsätzlich False ergibt. Bei for-Schleifen sollten Sie darauf achten, dass Endwert minus Startwert immer größer oder gleich 1 ist.

Bei for-Schleifen wird diese Warnung angezeigt, wenn eine Longint-Schleifenvariable einen Wert annimmt, der außerhalb des Longint-Bereichs liegt. Beispiel:


var I: Cardinal;
begin
  For I := 0 to $FFFFFFFF do
...

Sie können dieses Compiler-Problem beheben, indem Sie die for-Schleife durch eine while-Schleife ersetzen.