Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#11

AW: Wieso funktioniert diese boolsche Schleife nicht?

  Alt 5. Apr 2015, 10:56
Jupp, Delphi ist "standardmäßig" so eingestellt, daß es die Algebra verkürzt und mit der Auswertung aufhört, wenn das Endergebnis bereits feststeht.

Code:
0 or 0   = 0
1 or (0) = 1   <<<<<<
0 or 1   = 1
1 or (1) = 1   <<<<<<

0 and (0) = 0
1 and 0   = 0
0 and (1) = 0
1 and 1   = 1
Das in Klammern wird garnicht mehr ausgewertet und genau deswegen wurde die Funktion auh nicht mehr aufgerufen.

Und da gemeint war, daß es schonmal ging, blieben erstmal nur zwei Gründe übrig, siehe meine erste Antwort. (abgesehn von anderen Gründen/Sonderfällen, die im Beispiel des TE weggelassen wurden)
  • verkürzte Auswertung deaktiviert
  • andersrum ausgewertet (Funktion zuerst)

Weiß auch nicht was er meinte (vielleicht in den gelöschten Texten? (hab deren Inhalt nicht mehr ganz im Kopf)
Man kann es zwar so schreiben
Delphi-Quellcode:
if isConnected() then
  if tryToConnect() then
Aber ich geh einfach nach dem Motto, wer "global" ein grundsätzliches Standardverhalten ändert, der hat halt Pech.
Wobei ich micht nun doch manchmal darauf einlass und bei meinen Units/Komponenten (die ich für andere freigeb), gewisse Einstellungen lokal sicherheitshalber nochmal in der Unit vorgebe.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 5. Apr 2015 um 10:58 Uhr)
  Mit Zitat antworten Zitat