H2135 FOR oder WHILE Schleife wird nicht durchlaufen - gelöscht (Delphi)
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.