goto/do-while in Julia
-
In Julia gibt es ja kein goto und kein do-while. Wie ersetzt man das am besten?
Ich habe einen Algorithmus der Form
#2 if A goto #4 else a if B goto #2 #3 b goto #2 if C c goto #5 if D goto #2
-
Ich korrigiere:
#2 if A goto #4 else a if B goto #2 #3 b goto #2 #4 if C c goto #5 #5 if D goto #2
-
Die Abfrage kann man wahrscheinlich sinnvoller gestalten oder man kann auch Funktionen nutzen, die sich gegenseitig aufrufen.
-
do { if (!A) { a(); if (!B) b(); } else if (C) c(); } while (D);
Habs recht schnell umgeformt und nicht nachkontrolliert - Wahrscheinlichkeit dass es exakt stimmt also nicht super-hoch.
EDIT: OK, ne, stimmt nicht. die goto #2 prüfen ja die Bedingung (D) nicht nochmal.
-
Danke schonmal für deine Antwort. Beachte aber, dass es in Julia kein do-while gibt. Notfalls könnte ich es mit
firsttimeA = true while firsttimeA || A firsttimeA = false a end
emulieren.
-
Aber es gibt break und continue.
-
OK, nächster Versuch:
while (true) { if (!A) { a(); if (!B) b(); } else { if (C) c(); if (!D) break; } }
-
Und falls man davon ausgehen kann dass D vor der Schleife immer Wahr ist, dann könnte man auch schreiben
while (D) { while (!A) { a(); if (!B) b(); } if (C) c(); }
-
@hustbaer: Vielen Dank! Sorry für die späte Antwort.