Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Unterschied: if xxx then... und if (xxx) then...

  Alt 23. Nov 2003, 09:17
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:
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;
... kommst Du nicht zum gewünschten Ergebniss. Warum? Weil es eine Reihenfolge für die Auswertung gibt.
Zitat von Online Hilfe - Regeln für die Rangfolge von Operatoren -:
Code:
Operator                               Rangfolge

@, not                                 Erste (höchste)
*, /, div, mod, and, shl, shr, as      Zweite
+, -, or, xor                          Dritte
=, <>, <, >, <=, >=, in, is            Vierte   (niedrigste)
Darum musst Du Klammern setzen.

Delphi-Quellcode:
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;
[EDIT]*grummel* Da schreib ich mir den Wolf bzw. Hai und Robert bringt es in vier Zeilen auf den Punkt [/edit]
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat