![]() |
Re: nur eine if-Schleife ausführen
Nein mal ein Beispiel für den INhalt von C1.Items:
F-W V-Z G-5 B-7 Y-7 R-6 R-1 So sind natürlich mehrere If-Anweisungen erfüllt aber ich will das nur die erste die erfüllt wird aus ausgeführt wird die danach nicht mehr |
Re: nur eine if-Schleife ausführen
oder könnte man die For-Schleife nach erfüllen einer if ANweisung stoppen?
|
Re: nur eine if-Schleife ausführen
Also du gehst in deinem Fall diese Liste durch und prüft für jede Zeile ob etwas zutrifft. Hier wäre das erste, was wahr ist "F-W" und somit der 2. if-Zweig.
Anschließend arbeitest du die Liste weiter ab. Ist das vielleicht deine Problem? Wenn du die Schleife verlassen möchtest, falls eine Bedingung zutrifft, dann müsstest du in den if-Anweisungen mit "break" die Schleife verlassen. Wenn ich dich immer noch falsch verstanden habe tut's mir Leid. Grüße, Matze Edit: Dein "Push-Beitrag" sagt mir, dass ich dich dieses mal verstanden habe. :firejump: |
Re: nur eine if-Schleife ausführen
Danke das ist das was cih wissen wollte so müsste es gehen danke!
|
Re: nur eine if-Schleife ausführen
Und für die Zukunft wäre es neben dem Versuch, die Grammatik etwas aufzupeppeln sinnvoll, wenn du gleich den richtigen Quellcode zeigen würdest. Der aus deinem Ausgangsbeitrag hatte mit deinem Problem nichts zu tun, da zum einen die Schleife fehlte und zum anderen alle Bedingungen gleich waren und somit für unnötige Verwirrung sorgten.
Also bevor du etwas falsch zu vereinfachen versuchst, zeige lieber gleich den richtigen Code. ;) |
Re: nur eine if-Schleife ausführen
Geht klar;-)
|
Re: nur eine if-Schleife ausführen
Echt etz? :mrgreen: (SCNR^^)
|
Re: nur eine if-Schleife ausführen
Hallo Jaegermeister1992,
Zitat:
zum Thema: verschachtelte if Anweisungen funktionieren zwar bringen aber mit steigender Komplexität Unübersicht mit sich. Versuche das ganze mal mit case Anweisungen umzusetzen. Du bist dir später dankbar. :thumb: |
Re: nur eine if-Schleife ausführen
CASE geht mit gleichen Werten nicht
und auch bei verschachtelten IF-Anweisung ist es recht "sinnlos" 16, 8+8, 4*4 usw. ergibt alles das Selbe CASE läßt aber nur unterschiedliche Werte zu (Fehlermeldungen wie doppeltes Case-Label wären die Folge) und beim IF würde es zwar kompiliert werden, aber da die folgenden Bedingungen nie erreicht werden, sind sie doch eigentlich vollkommen unnütz. |
Re: nur eine if-Schleife ausführen
Also das funktioniert mitlerweile recht gut nun noch eine Frage:
die selbe For.Schleife wie vorhin. Wenn nun aber keine if Anweisung in der Schleife erfüllt wird, dann soll ... passieren
Delphi-Quellcode:
So habe ich mir das gedacht, aber dann macht er es nach jederm SChleifendurchlauf aber er soll es nur machen wenn die schleife durch ist und nichts passiert ist.
for i:= 0 to C2.Items.Count-1 do begin
FarbeC2:=Copy(C2.Items[i],0,1); ArtC2:=Copy(C2.Items[i],3,1); AblegenC2:= C2.Items[i]; if (FarbeC2 = 'V') and (ArtC2 = 'Z') then begin Showmessage('Sie haben eine Vierzehn'); break; end else if (FarbeC2 = 'F') and (ArtC2 = 'W') then begin Showmessage('Sie haben eine Farbwahl'); break; end else if (FarbeC2 = FarbeA) and (ArtC2 = 'A') then begin Showmessage('Sie haben ein Aussetzen'); break; end else if (FarbeC2 = FarbeA) and (ArtC2 = 'Z') then begin Showmessage('Sie haben ein Zweiziehen'); break; end else if (FarbeC2 = FarbeA) and (ArtC2 = 'R') then begin Showmessage('Sie haben ein Richtungswechsel'); break; end else if (FarbeC2 = FarbeA) or (ArtC2 = ArtA) then begin Ablegen.Picture.Loadfromfile('Karten/' + C2.Items[i] + '.bmp'); Aktuell.Items.Insert(0, C2.Items[i]); C2.Items.Delete(i); AnzahlC2:=AnzahlC2-1; NachlegenC2; break; end else Showmessage('Hallo'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 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