![]() |
Re: nur eine if-Schleife ausführen
Dann brauchst du eine zusätzliche boolesche Variable, die vor der for-Schleife auf false gesetzt wird und bei jedem Treffer (ähnlich dem bisherigen ShowMessage) auf true geändert wird; wenn sie nach der for-Schleife immer noch false ist, dann kommt einmalig die gewünschte Schlussmeldung.
Merke: Wenn etwas bei einer Schleife nur einmal gemacht werden soll, gehört es nur selten in die Schleife. Jürgen |
Re: nur eine if-Schleife ausführen
Ich glaube, Du würdest besser mit einem repeat...until statt mit for klarkommen.
Delphi-Quellcode:
Ungetestet, aber so wäre es evtl. übersichtlicher und Du würdest das break sparen, was von den Verfechtern der reinen Lehre gerne angemeckert wird.var bExit : boolean; i : integer; begin bExit := false; i := 0; repeat if dieses then begin //Anweisung bExit := true; end else if jenes then begin //Anweisung bExit := true; end //....weiter so bis else if i = C2.Items.Count-1 then begin //hier wolltest Du noch was machen weil keine Bedingung erfüllt wurde... bExit := true; end; inc(i); until bExit; end. Grüße, Messie |
Re: nur eine if-Schleife ausführen
@ Matze:
Zitat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer; label hier; begin i:=0; hier: inc (i); if i < 10 then goto hier; edit1.Text:=IntToStr(i); end; @alle Das mit dem Goto bitte ganz schnell wieder vergessen, sonst mache ich mich hier unbeliebt :-D Gruß Wolfgang |
Re: nur eine if-Schleife ausführen
Zitat:
Immerhin baut While-Do, Repeat-Unit, Case, If-Then-(Else) und sogar Try-Except/Finally intern auch nur auf Goto auf ... also auf Jump-Befehlen (ASM) |
Re: nur eine if-Schleife ausführen
Hallo,
Zitat:
Delphi-Quellcode:
//Edit: Ich sehe gerade das es im Grunde das gleiche wie der Vorschlag von messie ist.
//...
AnzahlC2:=AnzahlC2-1; NachlegenC2; break; end else if i = C2.Items.Count-1 then // das war der letzte Durchgang Showmessage('Hallo'); end; |
Re: nur eine if-Schleife ausführen
ich mach es immer so ... finde es so jedenfalls verständlicher
Delphi-Quellcode:
(theoretisch könnte man auch das ELSE hier weglassen, da es vom Aufrufpfad her auf's Selbe rauskommt.
i := 0;
while i < C2.Items.Count do begin if dieses then begin // Anweisung Break; end else if jenes then begin // Anweisung Break; end Inc(i); end; if i = C2.Items.Count then begin // Anweisung, wenn nichts zutraf end; |
Re: nur eine if-Schleife ausführen
Danke Danke so funktionierts
|
Re: nur eine if-Schleife ausführen
Hallo
Zitat von Wolfgang Mix: Zitat:
Erinnert mich auch an den üblen Basic Code (vor ca. 20 Jahren) Zitat von himitsu: Zitat:
|
Re: nur eine if-Schleife ausführen
Der Code von mir stammt noch aus den 70er Jahren unter FORTRAN77.
Der wurde uns damals tatsächlich als IF-Schleife verkauft. Übrigens: Zum Testen musste man die Befehle einzeln auf Lochkarten stanzen, beim Uni-Computerzentrum eine Testzeit beantragen usw. Wenn ich dann gelegentlich nicht über den Begriff IF-Schleife stolpere, so bitte ich um Nachsehen. Gruß Wolfgang P.S.:Ich hoffe, Matze ist von mir als Pauker nicht mehr so ganz enttäuscht. ;-) |
Re: nur eine if-Schleife ausführen
Bist ja anscheinend nicht der einzige Lehrer, welcher von IF-Schleifen redet,
jedenfalls, wenn man betrachtet, wieviele Schüle hier so vorbeikommen und auch davon reden (es sei denn die waren rein zufällig alle bei dir :lol: ) also keine Sorge |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 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