AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

If Anweisung mit 2 Bedingungen?

Ein Thema von Hallo_Thomas · begonnen am 4. Jun 2005 · letzter Beitrag vom 25. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

If Anweisung mit 2 Bedingungen?

  Alt 4. Jun 2005, 18:53
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 Zitat antworten Zitat
Kidix

Registriert seit: 14. Jan 2005
315 Beiträge
 
Delphi 4 Standard
 
#2

Re: If Anweisung mit 2 Bedingungen?

  Alt 4. Jun 2005, 18:55
and und oder or sind deine Freunde!

Kidix
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#3

Re: If Anweisung mit 2 Bedingungen?

  Alt 4. Jun 2005, 18:55
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....
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: If Anweisung mit 2 Bedingungen?

  Alt 4. Jun 2005, 18:55
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....
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
rantanplan99
(Gast)

n/a Beiträge
 
#5

Re: If Anweisung mit 2 Bedingungen?

  Alt 4. Jun 2005, 18:57
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.

if Bedinung1 AND Bedinung2 then ... Wenn beide zu treffen müssen

if Bedinung1 OR Bedinung2 then ... Wenn nur eine der beiden zutreffen muss ..

und in deinem Fall brauchst du AND
if (VorFeld[60] div 2+Feld[98]<=Maxi2) and (VorFeld[60] div 2+Feld[110]<=Maxi2) Then.... rantanplan
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#6

Re: If Anweisung mit 2 Bedingungen?

  Alt 4. Jun 2005, 18:57
Mit if kann man keine Schleifen, sondern nur Abfragen machen

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
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#7

Re: If Anweisung mit 2 Bedingungen?

  Alt 4. Jun 2005, 18:59
Dankeschön, das hat echt weitergeholfen
  Mit Zitat antworten Zitat
hardy1234

Registriert seit: 8. Aug 2004
Ort: Hamburg
26 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: If Anweisung mit 2 Bedingungen?

  Alt 4. Jun 2005, 19:10
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?
Es gibt keinen schöneren Tag als den heutigen. Der gestrige ist vorbei und von den kommenden weiß man nicht was sie bringen.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#9

Re: If Anweisung mit 2 Bedingungen?

  Alt 4. Jun 2005, 19:19
@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.
  Mit Zitat antworten Zitat
Palando

Registriert seit: 5. Mai 2005
72 Beiträge
 
#10

Re: If Anweisung mit 2 Bedingungen?

  Alt 4. Jun 2005, 19:57
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.)
Markus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 Uhr.
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