Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi If Anweisung mit 2 Bedingungen? (https://www.delphipraxis.net/46997-if-anweisung-mit-2-bedingungen.html)

Hallo_Thomas 4. Jun 2005 17:53


If Anweisung mit 2 Bedingungen?
 
Eine Frage, wie Packe ich 2 Bedingungen in eine Schleife?

Ich habs so probiert und noch ein zwei andere Versuche abdie sind schief gegangen




Delphi-Quellcode:
if VorFeld[60] div 2+Feld[98]<=Maxi2;
 VorFeld[60] div 2+Feld[110]<=Maxi2 Then....



Hier möchte ich einfach wenn diese 2 Bedingungen erfüllt sind soll dies ausgeführt werden.

Kidix 4. Jun 2005 17:55

Re: If Anweisung mit 2 Bedingungen?
 
and und oder or sind deine Freunde!

Kidix

TheAn00bis 4. Jun 2005 17:55

Re: If Anweisung mit 2 Bedingungen?
 
Zitat:

Zitat von Hallo_Thomas
Eine Frage, wie Packe ich 2 Bedingungen in eine Schleife?

Ich habs so probiert und noch ein zwei andere Versuche abdie sind schief gegangen




Delphi-Quellcode:
if VorFeld[60] div 2+Feld[98]<=Maxi2;
            VorFeld[60] div 2+Feld[110]<=Maxi2 Then....



Hier möchte ich einfach wenn diese 2 Bedingungen erfüllt sind soll dies ausgeführt werden.

Delphi-Quellcode:
if (VorFeld[60] div 2+Feld[98]<=Maxi2) and
            (VorFeld[60] div 2+Feld[110]<=Maxi2) Then....

Sharky 4. Jun 2005 17:55

Re: If Anweisung mit 2 Bedingungen?
 
Hai Hallo_Thomas,

Du musst in diesem Fall deine beiden Bedinugung mit einem AND verknüpfen.

Delphi-Quellcode:
if (VorFeld[60] div 2+Feld[98] < =Maxi2) AND
            (VorFeld[60] div 2+Feld[110] <= Maxi2) Then....

rantanplan99 4. Jun 2005 17:57

Re: If Anweisung mit 2 Bedingungen?
 
Zitat:

Zitat von Hallo_Thomas
Eine Frage, wie Packe ich 2 Bedingungen in eine Schleife?
Ich habs so probiert und noch ein zwei andere Versuche abdie sind schief gegangen
Delphi-Quellcode:
if VorFeld[60] div 2+Feld[98]<=Maxi2;
            VorFeld[60] div 2+Feld[110]<=Maxi2 Then....
Hier möchte ich einfach wenn diese 2 Bedingungen erfüllt sind soll dies ausgeführt werden.


Mit logischen Verknüpfungen ist das machbar.

Delphi-Quellcode:
if Bedinung1 AND Bedinung2 then ...
Wenn beide zu treffen müssen

Delphi-Quellcode:
if Bedinung1 OR Bedinung2 then ...
Wenn nur eine der beiden zutreffen muss ..

und in deinem Fall brauchst du AND
Delphi-Quellcode:
if (VorFeld[60] div 2+Feld[98]<=Maxi2) and (VorFeld[60] div 2+Feld[110]<=Maxi2) Then....
rantanplan

malo 4. Jun 2005 17:57

Re: If Anweisung mit 2 Bedingungen?
 
Mit if kann man keine Schleifen, sondern nur Abfragen machen ;)

Delphi-Quellcode:
if (VorFeld[60] div 2+Feld[98]<=Maxi2) and (VorFeld[60] div 2+Feld[110]<=Maxi2) Then....
Oder so:

Delphi-Quellcode:
if VorFeld[60] div 2+Feld[98]<=Maxi2 then
  if VorFeld[60] div 2+Feld[110]<=Maxi2 then...
Ersteres ist zwar imho schöner, aber manchmal kommt man um die zweite Methode nicht umher ;)

Hallo_Thomas 4. Jun 2005 17:59

Re: If Anweisung mit 2 Bedingungen?
 
Dankeschön, das hat echt weitergeholfen

hardy1234 4. Jun 2005 18:10

Re: If Anweisung mit 2 Bedingungen?
 
Warum nicht mit while, wenn es schon ne Schleife sein soll? Etwa so:

Delphi-Quellcode:
  .
  while Expression1 and Expression2 do begin
    .
  end; // of while Expression1 and Expression2 do begin
  .
Ein besonders hübscher Trick besteht bei mehreren Bedingungen darin, ein Zuweisung zu einem boolean zu benutzen. Erleichter die Übersicht wenn das ein Haufen Zeugs wird. Etwa so:

Delphi-Quellcode:
var
  Exp1,
  Exp2 : boolean;
begin
  Exp1:= (VorFeld[60] div (2 + Feld[98])) <= Maxi2 ; // Ergebnis ist boolscher Wert
  Exp2:= ...;
  {*** und nun los ***}
  while Exp1 and Exp2 do begin

  end; // of while Exp1 and Exp2 do begin
end;
Sieht im Code auch etwas hübscher aus oder nicht?

malo 4. Jun 2005 18:19

Re: If Anweisung mit 2 Bedingungen?
 
@hardy1234: Wegen den Schleifen: Es waren bestimmt die if-Abfragen gemeint ;)
Bei der ersten Variante fehlen jedoch die Klammern.


Die zweite Variante halte ich (besonders für Anfänger) viel zu kompliziert.

Was mich bei Schleifen in diesem Fall stört: Der Code wird IMMER WIEDER ausgeführt. Deshalb sind es auch Schleifen. Man müsste künstlich die Bedingung unterbrechen oder ein Break einbauen, was nicht so schön ist.

Palando 4. Jun 2005 18:57

Re: If Anweisung mit 2 Bedingungen?
 
Zitat:

Zitat von rantanplan99
Mit logischen Verknüpfungen ist das machbar.
.. AND ..
.. OR ..

Gibt es eigentlich auch ein XOR? Weil einfach "XOR" ging bei mir glaube ich nicht...


(XOR = die Schleife wird nur ausgeführt, wenn die eine Bedingung true und die andere false ist. Wenn beide true sind, oder beide false, dann wirds nicht gemacht.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.
Seite 1 von 2  1 2      

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