Korrektur: Ich meinte, die TreeDepth muss natürlich kleiner als die aktuelle sein. Nicht gleich (und auch nicht einfach nur um eins kleiner oder so). Ich hatte vergessen dass man ja wahrscheinlich noch andere Treestrukturen braucht.
EDIT: Damn, ich muss wir was anderes überlegen. Weil:
0...<> Loop
1......<> Fork If ...
2.........<> Break Loop
2.........<>
1......: End Case
1......<> Loop
2.........<>
1......: End Loop
1......<> Message "Hello"
0...: End Loop
Dieses Beispiel würde dann nämlich trotzdem "Hello" ewig ausgeben, anstatt nichts.
Man müsste alle Zeilen durchgehen, einen Counter für jedes Loop um 1 erhöhen und für jedes End Loop um 1 verringern. Und wenn der Counter (angenommen er startet mit 0) kleiner 0 ist, DANN haben wir das richtige End Loop gefunden.
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!
Also der Beispielcode den ich oben aufgeführt habe, funktioniert jetzt mit dieser Version.
Beide Schleifen laufen so durch wie sie sollen und am Ende kriege ich auch das "test fertig" ausgegeben.
@bugmenot: Warum so kompliziert? Was war an meiner Lösung denn falsch? (Der aus dem Edit)
Ich meinte das so:
......<> Break Loop --- Counter=0, mal End Loop suchen gehen
......<>
...: End Case
...<> Loop --- Counter=1
......<>
...: End Loop --- Counter=0
: End Loop --- Counter=-1, richtiges End Loop gefunden!
--
Mir war nichtmal bewusst dass ich nominiert wurde, aber: Cool! Hälfte des Lobes muss aber unbedingt an Archeia!
Habe mich wohl zu sehr auf eb!'s Code eingelassen und die aufgepickten :EndLoops auf richtige Zugehörigkeit überprüft... anstatt gleich das erste richtige :EndLoop suchen zu lassen...