Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Verständnisfrage: IF (Bedingung1 ODER Bedingung1) (https://www.delphipraxis.net/190581-verstaendnisfrage-if-bedingung1-oder-bedingung1.html)

Jim Carrey 18. Okt 2016 12:17

Verständnisfrage: IF (Bedingung1 ODER Bedingung1)
 
Eine kleine Verständnisfrage hätte ich.

Wenn bei folgender If-Konstruktion A = B bereits zutrifft, wird C = D dann noch überprüft oder nicht? Das Frage ich mich schon seit langer Zeit
Delphi-Quellcode:
if (A = B) or (C = D) then

Der schöne Günther 18. Okt 2016 12:19

AW: Verständnisfrage: IF (Bedingung1 ODER Bedingung1)
 
http://docwiki.embarcadero.com/RADSt...n_im_Vergleich

https://de.wikipedia.org/wiki/Kurzschlussauswertung

Kurze Antwort: Nein.

Etwas längere Antwort: Nein, es sei denn du hast in den Projekt-Optionen "Vollständige boolsche Auswertung" aktiviert (warum sollte man so etwas tun?)

Darlo 18. Okt 2016 12:21

AW: Verständnisfrage: IF (Bedingung1 ODER Bedingung1)
 
Oder wenn Du es testen willst:

Delphi-Quellcode:
procedure TfrmMain.Button3Click(Sender: TObject);
var
  myPanel: TPanel;
begin

if (1=1) or (myPanel.Name = 'test') then
  showmessage('a');

if (myPanel.Name = 'test') or (1=1) then
  showmessage('b');

end;

DeddyH 18. Okt 2016 12:23

AW: Verständnisfrage: IF (Bedingung1 ODER Bedingung1)
 
Müsste das nicht *Puff* machen? Immerhin greifst Du auf die Eigenschaft einer Instanzvariablen ohne Instanz zu.

Neutral General 18. Okt 2016 12:25

AW: Verständnisfrage: IF (Bedingung1 ODER Bedingung1)
 
Zitat:

Zitat von DeddyH (Beitrag 1351198)
Müsste das nicht *Puff* machen? Immerhin greifst Du auf die Eigenschaft einer Instanzvariablen ohne Instanz zu.

Ich glaube das ist genau der Test. Bei "a" krachts nicht, weils gar nicht ausgewertet nicht und bei "b" schon.

DeddyH 18. Okt 2016 12:27

AW: Verständnisfrage: IF (Bedingung1 ODER Bedingung1)
 
Ach, wenn das so gedacht war, habe ich nichts gesagt :)

Darlo 18. Okt 2016 12:29

AW: Verständnisfrage: IF (Bedingung1 ODER Bedingung1)
 
:) Hätte es in der Tat mehr ausführen können.

Neutral General 18. Okt 2016 12:40

AW: Verständnisfrage: IF (Bedingung1 ODER Bedingung1)
 
Wollte auch erst schreiben dass ich nicht verstehe wie das ein Test sein soll.
Und dann kam grad vorher noch DeddyHs Post und erst dann kam die Erleuchtung :mrgreen:

himitsu 18. Okt 2016 12:59

AW: Verständnisfrage: IF (Bedingung1 ODER Bedingung1)
 
Wobei myPanel nicht initialisiert ist ... Wenn da "zufällig" ein Wert drin steht, der einen Zeiger auf ein TComponent darstellt, dann knallt es nicht. :stupid:

PS:
Delphi-Quellcode:
{$BOOLEVAL ON}
-> http://docwiki.embarcadero.com/RADSt...ler-Direktive)
Hmmmmm, was ist mit XOR?
Zitat:

Zitat von dokwiki
für die Booleschen Operatoren und und oder um


Und ja, bei Delphi stimmt es, aber z.B. bei PostgrSQL muß man aufpassen.

Die Optimierung kann da diese Prüfungen austauschen/umdrehen und dann knallt's.

UND, in C-Sprachen ist die Auswertungsreihenfolge der Operatoren andersrum, als im Delphi. ( == vor AND statt AND vor =)

Darlo 18. Okt 2016 13:00

AW: Verständnisfrage: IF (Bedingung1 ODER Bedingung1)
 
Zitat:

Zitat von himitsu (Beitrag 1351207)
Wobei myPanel nicht initialisiert ist ... Wenn da "zufällig" ein Wert drin steht, der einen Zeiger auf ein TComponent darstellt, dann knallt es nicht. :stupid:

Dann hat man den weiteren Programmablauf aber auch verdient ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz