Hab mal ne Frage, wie intelligent in Delphi (bzw. im fertigen Programm) Boolsche Ausdrücke auswertet werden. Ich hab nen Anweisungsblock, der nur dann ausgeführt werden soll, wenn 2 Bedingungen erfüllt sind. Das geht natürlich so:
Quelltext
1: 2: 3: 4:
| if (Bed1) AND (Bed2) then begin ... end; |
Problem ist: Wenn Bed1 schon nicht erfüllt ist, kann es beim Testen, ob Bed2 erfüllt ist, zu einem "List INdex out of Bounds" kommen.
Frage: Bricht die Auswertung bei einem Ausdruck der Form if (Bed1) AND (Bed2)
sofort mit FALSE ab, wenn Bed1=False (was ja korrekt wäre), oder macht der trotzdem weiter?
(Bei mir scheint das so zu sein, denn wenn ich die Bedingungen umkehre, krieg ich den Fehler, anders nicht; aber ist dieses Verhalten auch auf anderen Rechnern garantiert, wenn ich die fertige .exe verteile?)
We are, we were and will not be.