Lösung ohne Goto (Freebasic)
lima-city → Forum → Programmiersprachen → Basic
abbruch
abfrage
anweisung
bedingung
bestimmte anzahl
break
dank
eingabe
ende
fraglichen befehle
funktion
gesondert abfragen
label
lauf
programm
prozedur
runden stand
schleife
variable einrichten
verschachtelten schleifen
-
Ich habe eine Struktur von eigentlich zwei ineinander verschachtelten Schleifen.
Am Ende der Hauptschleife erfolgt eine Abfrage, ob die nächste Unterschleife durchlaufen werden soll, oder eine neue Hauptschleife begonnen werden soll, oder ob das Programm beendet werden soll.
Aktuell löse ich das Problem mit "goto Label". Da sowas aber verpönt ist, suche ich nach einer anderen Lösung. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich danke Dir !
Leider gibt es in dem vorliegenden Dialekt keinen Break-Befehl. Aber Du hast mich auf den richtigen Weg gebracht.
Bei beiden Schleifen gibt es zwei Bedingungen, von denen eine für den Abbruch erfüllt sein muß. Eine wird jeweils vom Programm ermittelt und die andere ist diese Eingabe-Geschichte. na, daß kriegen wir schon...
die fraglichen Befehle in Freebasic sind "exit" und "continue". Ersterer dient dazu die Schleife zu verlassen, zweiterer dazu einen Teil der Schleife zu überspringen.
Also ich habe eine brauchbare Lösung gefunden:
Die konkrete Aufgabe war eine bestimmte Anzahl von Runden mit einer unbestimmten Anzahl von Läufen. Für die Runden stand von vorneherein eine maximale Anzahl fest, da dies am Schluß bei Bedarf in eine Tabelle eingetragen und ausgewertet werden sollten. Für die Anzahl der Läufe ist eine bestimmte Bedingung maßgeblich, die innerhalb der Läufe ermittelt wird.
Darüber hinaus sollte es am Ende jeder Runde die Möglichkeit geben, den nächsten Lauf zu starten oder die nächste Runde, oder das Programm zu beenden.
Lösung:
for runden=min to max
anweisungen
....
do
anweisungen
....
abfrage
case select abfrage
case 1 loop until Bedingung erfüllt
case 2 next
case 3 end
end select
next
Nochmals Danke an Fatfox, der mich auf den Weg gebracht hat.
Beitrag zuletzt geändert: 25.11.2010 0:29:00 von druid -
Das funktioniert so nicht.
Wenn die Unterschleife in einer Sub zu viel wird, mußt Du eine Variable einrichten, welche als Flag für Abbruch(ja/nein)
dient und diese am Ende gesondert abfragen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage