![]() |
Unterschied: if xxx then... und if (xxx) then...
Hiho,
man hat ja zwei möglichkeiten If-Schleifen zuschreiben 1.
Delphi-Quellcode:
2.
if Key = VK_UP then
//machwas
Delphi-Quellcode:
if (Key = VK_UP) then
//Machwas Aber wo ist da der Unterschied? Es wird beides ausgeführt! Ich komm nicht ganz dahinter mit den zwei () :gruebel: Genauso ist es wenn man "and" und "or" schreibt, da muss man die Dinger auch einklammern. Aber warum? |
Re: Unterschied: if xxx then... und if (xxx) then...
:hi: spider
ich hab das mal so gelernt :
Delphi-Quellcode:
if Bedingung then
begin ... end; if (Bedingung1) BooleanerOperator (Bedingung2) then begin ... end; |
Re: Unterschied: if xxx then... und if (xxx) then...
Da ist kein Unterschied.
Das kommt ueblicherweise von C Programmen wo () zum if gehoert. Viele Programmierer koennen nicht davon lassen. Manche Programmierer sind auch der Meinung das es so sicherer ist falls man die Bedingung erweitert. |
Re: Unterschied: if xxx then... und if (xxx) then...
Bei "if (a = b) and (c = d) then" in Pascal muessen die Klammern sein, da "and" eine hoehere Prioritaet als "=" hat.
Ohne explizite Klammern gilt "if a = (b and c) = d then" was ein illegaler Ausdruck ist. Das gilt natuerlich fuer alle booleschen und Vergleichsoperatoren. Einer der groessten Maengel von Pascal. |
Re: Unterschied: if xxx then... und if (xxx) then...
Hai Spieder,
die IF-Anweisung interessiert die Klammern eigentlich überhaupt nicht. Du kannst sie also weglassen. Ha, aber nur wenn dein Ausdruck richtig aufgebaut ist. Je nach dem musst Du klammern setzen. z.B.: Du hast vier Boolean Variablen. a,b,c,d Die Bedingung soll erfüllt sein wenn a oder b und c oder d True ist. Wenn du nun schreibst ....
Delphi-Quellcode:
... kommst Du nicht zum gewünschten Ergebniss. Warum? Weil es eine Reihenfolge für die Auswertung gibt.
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d : Boolean; begin a := False; b := False; c := False; d := True; if a or b and c or d then begin ShowMessage ('Bedingung ist erfüllt'); end; end; Zitat:
Delphi-Quellcode:
[EDIT]*grummel* Da schreib ich mir den Wolf bzw. Hai und Robert bringt es in vier Zeilen auf den Punkt ;-) [/edit]
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d : Boolean; begin a := False; b := False; c := False; d := True; if (a or b) and (c or d) then begin ShowMessage ('Bedingung ist erfüllt'); end; end; |
Re: Unterschied: if xxx then... und if (xxx) then...
THX @All!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz