![]() |
Prob. mit if-Anweisung
Hallo,
Ich habe ein Problem mit einer if-Anweisung. Wenn ich z.B. das hier eingebe:
Delphi-Quellcode:
Dann bekomme ich immer eine Fehlermeldung hinter strtofloat(feld3.Text)=2.
if
strtofloat(feld1.Text)=0 or strtofloat(feld2.Text)=1 or strtofloat(feld3.Text)=2 then begin ... end; Woran liegt das? Kann man immer nur zwei Werte vergleichen? mfG cosypanther |
Re: Prob. mit if-Anweisung
Hallo!
Du musst die einzelnen Bedingungen in Klammern einschließen, dann klappt es auch mit der if-Anweisung.
Delphi-Quellcode:
if
(strtofloat(feld1.Text)=0) or (strtofloat(feld2.Text)=1) or (strtofloat(feld3.Text)=2) then begin ... end; |
Re: Prob. mit if-Anweisung
Würde das gehen, wenn "..." passieren soll
und entweder das eine richtig ist oder die anderen beiden?:
Delphi-Quellcode:
cosypanther
if
(strtofloat(feld1.Text)=0) or ( (strtofloat(feld2.Text)=1) and (strtofloat(feld3.Text)=2) ) then begin ... end; |
Re: Prob. mit if-Anweisung
Die zusätzlichen Klammern um die and-Anweisung brauchst du nicht!
|
Re: Prob. mit if-Anweisung
Zitat:
|
Re: Prob. mit if-Anweisung
ich finde sie wirken ehrer im gegenteil. Sie stören der Übersicht. und sind nur sinvol bei solchen sachen:
Delphi-Quellcode:
sonst sind sie nur stören.... aber das ist Geschmack sache.
if ((test1=1) and (testa = test1)) or ((test1=2) and (testb = 'ÖLll')) then
..... |
Re: Prob. mit if-Anweisung
wenn wir mal davon absehen das bei dir eine klammer fehlt ist es doch fast das gleiche wie cosypanther geschrieben hat :gruebel:
|
Re: Prob. mit if-Anweisung
Aber nur fast ! es gibt halt viele Wege ein Problem zu lösen ...
Stimmt da fehlt eine behebe ich sofort ! |
Re: Prob. mit if-Anweisung
Ich glaube hier geht es nicht darum ob man jetzt eine ganze Zeile für eine Klammer ofpert (was ich übrigens auch nicht machen würde) sondern ob die Klammern da hingehören!
Sind diese 2 Zeilen das gleiche?
Delphi-Quellcode:
Mit den Klammern weiß mann immer genau was mir dieser Code sagen will!
if A or B and C then ...
if A or (B and C) then ... |
Re: Prob. mit if-Anweisung
Zitat:
|
Re: Prob. mit if-Anweisung
Danke für die vielen Antworten!!! :thumb:
cosypanther |
Re: Prob. mit if-Anweisung
@dominikkv
Die zeilen unterscheiden sich:
Delphi-Quellcode:
Bei der ersten würde das Programm entweder A nehmen oder das zweite wenn B = C ist
if A or B and C then ...
if A or (B and C) then ... Ich sehe gerade bei der Zweiten Zeile würde das Programm das auch machen. Also sind beide Zeilen im Prinzip gleich. Ob der ASM Code sich unterscheidet weiß ich nicht. Es ist nur übersichtlicher denke ich einfach und wenn A und B und C Booleane Variablen sind müssen die Klammern meine ich nicht sein, nur wenn es Interger oder Strings oder sowas ist. und wenn die Lang From verwendet wird wie z.b. A = True Dann müssen Klammern gesetzt werden, also in 80% Der Fälle müssen die Klammern her. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 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