2016-07-10 7 views
1

Ich habe Probleme mit GO TO-Anweisung. Also, ich habe ein Programm und ein Unterprogramm. Ich weiß, dass GO TO [label]in Unterprogramm verwendet kann nicht die Sache zu [label]in Programm gehen machen. Ich frage mich, ob es eine Möglichkeit gibt, zu der Marke zu gelangen, die im Programm von der Subroutine verwendet wird?GO zu Aussage?

+1

Sie können nicht irgendwo außerhalb des Bereichs "gehen" (wie in [this] (http://stackoverflow.com/q/9899587) und [this] (http : //stackoverflow.com/q/20993686)), aber interessieren Sie sich für andere Formen der Flusskontrolle? – francescalus

+0

@francescalus Ja. Nun, ich brauche im Grunde alles, was dazu beitragen würde, die Kommunikation zwischen Programm und Unterprogramm – Anton

+0

Es gibt so etwas wie _alternate return_. Ich erwähne das nicht, weil ich denke, dass Sie es verwenden sollten, sondern weil Sie diesen Suchbegriff verwenden können, um geeignete Alternativen zu finden. – francescalus

Antwort

0

Eine einfache Lösung besteht darin, dass eines der Argumente der Subroutine eine ganze Zahl ist, die auf einen Wert in der Subroutine gesetzt ist. Basierend auf dieser Ganzzahl (zurück im Hauptprogramm), wird goto [label] aufgerufen, sobald die Subroutine zurückkehrt. Du könntest ein berechnetes goto für dieses verwenden: https://software.intel.com/en-us/node/526268

+0

Bitte no zu GOTO berechnet. Sie könnten auch alternative Renditen verwenden, aber ich hoffe, sie bleiben sicher vergraben. –