Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Auf übergeordnete Schleife zugreifen (https://www.delphipraxis.net/108882-auf-uebergeordnete-schleife-zugreifen.html)

Diamondback2007 20. Feb 2008 18:01


Auf übergeordnete Schleife zugreifen
 
hallo zusammen.

ich würde gerne von einer schleife auf eine übergeordnete zugreifen.

konkret:
Delphi-Quellcode:
for j := 0 to iniko.ReadInteger(FAktuellerRaum.Name, 'AnzahlPersonen', 0) - 1 do
    begin
      //Für alle Itemkombinationen
      for i := 0 to tmpStringlist.Count - 1 do
        begin
          //Falls eine Person + Item was sagt bzw existiert
          if iniko.ReadString(FAktuellerRaum.Name, 'PersonText' + tmpStringlist.Strings[i] + IntToStr(j), '') <> '' then
            begin
              //Dann dem Ergebnis hinzufügen
              tmpText := iniko.ReadString(FAktuellerRaum.Name, 'PersonText' + tmpStringlist.Strings[i] + IntToStr(j), '');
              Result.Add(iniko.ReadString(FAktuellerRaum.Name, 'PersonName' + IntToStr(j), 'Eine Person') + ' sagt: ' + tmpText);
              //Was muss hier hin, damit der block unten nicht ausgeführt wird?Weder break; noch continue; brigen den gewünschten           erfolg
            end;
        end;
      //Falls Person ohne Item etwas sagt
      if iniko.ReadString(FAktuellerRaum.Name, 'PersonText' + IntToStr(j), '') <> '' then
        begin
          //Dann dem Ergebnis hinzufügen
          tmpText := iniko.ReadString(FAktuellerRaum.Name, 'PersonText' + IntToStr(j), '');
          Result.Add(iniko.ReadString(FAktuellerRaum.Name, 'PersonName' + IntToStr(j), 'Eine Person') + ' sagt: ' + tmpText);
        end;
    end;
Ja, die frage steht ja schon im code drinne. ich möchte halt, dass sobald etwas ausgelsen wurde der untere teil nicht ausgeführt wird. deshalb bräuchte ich ein "Continue" für die schleife obendrüber...

eine möglichkeit wäre eine booleanvariable aber gibt es eine bessere lösung?
vielleicht kann ja jemand helfen.

gruß

EDIT: Sorry für sie seltsame formatierung, kann ich nichts für... :(

DeddyH 20. Feb 2008 18:04

Re: Auf übergeordnete Schleife zugreifen
 
Geht das nicht einfach mit einem if-then-else-Konstrukt?

mkinzler 20. Feb 2008 18:04

Re: Auf übergeordnete Schleife zugreifen
 
Dann würde ich die For-Schleife durch eine andere (While) ersetzen

bluesbear 20. Feb 2008 18:08

Re: Auf übergeordnete Schleife zugreifen
 
Zitat:

Zitat von Diamondback2007
eine möglichkeit wäre eine booleanvariable

IMHO ist eine Boolevariable die einzige und sauberste Lösung.

DeddyH 20. Feb 2008 18:11

Re: Auf übergeordnete Schleife zugreifen
 
Nachdem ich jetzt endlich die Logik verstanden habe :oops: , gebe ich bluersbear Recht.

Diamondback2007 20. Feb 2008 18:20

Re: Auf übergeordnete Schleife zugreifen
 
okay, danke. werde ich dann so machen.

gruß

Apollonius 20. Feb 2008 18:22

Re: Auf übergeordnete Schleife zugreifen
 
Wie wäre es mit Goto?

DeddyH 20. Feb 2008 18:24

Re: Auf übergeordnete Schleife zugreifen
 
Pfui!

Hawkeye219 20. Feb 2008 19:12

Re: Auf übergeordnete Schleife zugreifen
 
Hallo,

wenn man der temporären Stringliste vor der j-Schleife einen Leerstring hinzufügt, kann der untere Block entfallen. Die i-Schleife kann dann mit einer BREAK-Anweisung verlassen werden.

Gruß Hawkeye

Apollonius 20. Feb 2008 19:18

Re: Auf übergeordnete Schleife zugreifen
 
@DeddyH: Ich weiß nicht, ob Dijkstra mit seinem "go to statement considered harmful" wirklich ein zweiter Pawlow werden wollte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr.
Seite 1 von 2  1 2      

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