Zurück zum Schleifenkopf

MiMa

Top Contributor
Hallo,
in einer for-Schleife müssen mehrere Datensätze aus einem Array nacheinander abgearbeitet werden. Es gibt aber Situationen, in der die Schleife nicht vollstänstig agearbeitet werden soll.
Ich weiss schon, das man mit Break eine Schleife abbrechen kann und dann mit den nachfolgend weiteren Befehle nach der Schleife fortsetzt. Mit Continous kann ich eine Schleife unterbrechen und arbeitet dann vom Kopf der Schleife mit den nächsten Eintrag fort.
Genau das ist was ich benötige, aber leider funktioniert der Countinous Befehl nicht.
Hier mal ein Schema
Code:
For Schleife {
    holt "Datei[0]"
        1 Methode pruefeDateiInhaltLeer(Datei)
            2 Methode prüft Dateiinhalt()
            Entscheidet Datei ist Leer
                3 Methode Datei wird in Verzeichnis verschoben
                                Zurück zum Schleifenkopf (continous)
}
Weitere Andere Befehle
...
Die Schleife beginnt und holt sich den ersten Eintrag aus dem Array und in einer weiteren Methode wird der Dateinhalt geprüft. In der dritten Methodentiefe möchte ich die Forschleife abbrechen und zum Kopf mit den nächsten Eintrag fortführen. Ich fürchte, das der Continous Befehl nicht funktioniert weil die Abbruchbedinnung zu tief in der Struktur steck?

Über Tipps würde ich mich sehr freuen.
Danke
M
 
Ja, richtig. In der IDE wird das eh immer korrigiert, daher ist es im code richtig geschrieben.
Habe mir auch gerade das Konzept mit den Markern angeschaut.
Ich denke das Problem liegt daran, das die for-Schleife in einer Klasse statt findet und das Unterbrechen in einer anderen Klasse.
 
In der Schleife werden mehrere Methoden aufgerufen, die sich auch in anderen Klassen befinden.
Es kommt auch vor, das eine Methode aus einer anderen Klasse aufgerufen wird und diese wieder eine Methode aufruft. Das ist auch derzeit mein Problem 😕
 
Dann musst du umstrukturieren so dass das Abbruch- bzw. Fortsetzungskriterium in der Schleife und nicht irgendwo sonst festgestellt werden kann.

Edit: die aufgerufenen Methode können ja nicht wissen dass sie in einer Schleife aufgerufen werden.
 
Danke für die Hilfe,
ich habe ein paar Codezeilen an eine andere Stelle der Methode plaziert. An der Ereignisstelle habe ich dann ein Return eingefügt um die Methode vorzeitig zu verlassen. Zurück in der anderen Klasse habe ich an den Wiedereintrittspunkt eine Abfrage mit einem Continue eingefügt der von der Kopfschleife mit einem neuen Eintrag die Schleife wieder ausführt. 😉🙂
 

Zurück
Oben