![]() |
If Abfrage mit mehreren Logischen Operatoren!?
moin jung und mädels,
ich hab ein Problem. kann mir vielleicht einer von euch sagen warum diese If Schleife nicht Funktioniert wie sie soll?
Delphi-Quellcode:
Ich gruebel da jetz schon ewig dran aber komme einfach nicht weiter. die bedingung arbeitet nur korrekt wenn typ "US Sniper" ist, also dem letzten wert von typ. bei den anderen drei typen liefert die abfrage ein falsches ergebnis.
if (typ = 'US AntiAir') or (typ='US AntiTank') or (typ='US Soldier') or (typ='US Sniper') and (Einheitenstatus='Friendly') then image.Picture:=Form1.Inf_gruen.picture;
SO long Richard |
Re: If Abfrage mit mehreren Logischen Operatoren!?
Was sollte denn eigentlich passieren?
Setze doch einfach ein paar klammern... |
Re: If Abfrage mit mehreren Logischen Operatoren!?
Eventuell kann man bessert helfen, wenn du uns sagts, was du unter 'nicht funktioniert' verstehst. :roll:
|
Re: If Abfrage mit mehreren Logischen Operatoren!?
and hat eine höhere Priorität als or
also wird die Operation so ausgeführt:
Delphi-Quellcode:
Abhilfe:
if (typ = 'US AntiAir') or (typ='US AntiTank') or (typ='US Soldier') or
((typ='US Sniper') and (Einheitenstatus='Friendly')) then
Delphi-Quellcode:
if ((typ = 'US AntiAir') or (typ='US AntiTank') or (typ='US Soldier') or ((typ='US Sniper'))
and (Einheitenstatus='Friendly') then [size=8][Edit]Eine Klammer zu viel...[/edit][size] |
Re: If Abfrage mit mehreren Logischen Operatoren!?
Ich würde sagen, um die ganzen or gehört eine Klammer, je nachdem, auf was sich das and bezieht. Wenn das and zum letzten or gehört, müsste eine Klammer ans Ende.
|
Re: If Abfrage mit mehreren Logischen Operatoren!?
ok jungs,
many THX klammernsetzung wars. folgende loesung funtz bei mir
Delphi-Quellcode:
if ((typ = 'US AntiAir') or (typ='US AntiTank') or (typ='US Soldier') or (typ='US Sniper')) and (Einheitenstatus='Friendly') then image.Picture:=Form1.Inf_gruen.picture;
nochmal vielen Dank euch allen´, hab wohl den wald vor lauter baumen nich mehr gesehn. ;) Bis denne, euer Richard |
Re: If Abfrage mit mehreren Logischen Operatoren!?
Nebenbei: Abfragen mit Strings auf diese Weise sind sehr ineffizient. Verwende lieber eine lineare Aufzählung, z.B.:
Delphi-Quellcode:
type
TUnitType = (UT_US_ANTIAIR, UT_US_ANTITANK, UT_US_SOLDIER, UT_US_SNIPER); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 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-2025 by Thomas Breitkreuz