2012-10-10 11 views

Antwort

14

GOTO springt einfach auf eine andere Linie, hält GOSUB verfolgen, wo es herkam (auf einem Stapel, vermutlich), so dass, wenn der Dolmetscher RETURN trifft, geht es zurück auf den letzten Platz GOSUB genannt wurde.

Was mich mehr neugierig ist, ist, warum verwenden Sie BASIC für alles?

+0

Basis wird noch verwendet. VB.NET ist immer noch BASIC. –

+1

Was? VB.NET ist eine völlig andere Sprache. Sicher, es heißt Basic, aber es ist nicht 'BASIC' – Collin

+0

@Colin - Sie vermissen den Punkt. VB.NET ist immer noch BASIC. Ja, es hat viele OO-Erweiterungen, aber es ist immer noch im Wesentlichen BASIC. Sicher, es wird nicht interpretiert, aber das ist eine Ausführungsstrategie, keine Sprachfrage. –

1

Wenn Sie GOTO aufrufen, springt das Programm zu der entsprechenden Zeile und führt die Ausführung aus.

Wenn Sie GOSUB verwenden, wird es dasselbe tun, jedoch können Sie irgendwann eine RETURN-Anweisung codieren, und der Code wird in die Zeile direkt nach GOSUB zurückkehren.

Also GOTO geht zu X, während GOSUB zu X geht, aber merke dir, wo du jetzt bist und du kannst später zurückkehren.

+0

Vielen Dank; Ich denke jedoch, dass wir eine weitere Übertragung von Befehlen einbeziehen können, wobei die beabsichtigte ausführbare Anweisung zurück zu der nächsten Zeile folgt, die der GOTO-Anweisung folgt, dann eine weitere Übertragung der Steueranweisung über die Zeile der ersten Steuerübertragung, um dasselbe zu tun, obwohl mehr Codes als nur gewöhnliche GOSUB dann Single RETURN. zB 10 GOTO 30. 15 Codes. 20 Codes. 25 GOTO 45. 30 Codes. 35 Codes. 40 GOTO 15. 45 END das wird funktionieren und es wird niemals in eine endlose Schleife gehen. –

+0

Ich kann Ihren Kommentar nicht lesen. Bitte bearbeiten Sie Ihre Frage. –

+0

Ihre Antwort ist richtig! Ich versuche nur, eine andere Methode einzuführen, die mehr Codes beinhaltet. Danke für die beantwortete Frage. Ich habe bereits für deine Antwort gestimmt –

2

Die anderen Antworten geben eine gute Erklärung, wie man GOTO und GOSUB benutzt, aber es gibt einen wichtigen Unterschied in ihrer Verarbeitung. Wenn ein GOTO ausgeführt wird, beginnt es an der Spitze des Stapels und dreht sich durch alle Codezeilen, bis es die Zeile findet, die es GOTO werden soll. Wenn Sie dann eine andere GOTO-Anweisung verwenden, um zurück zu gelangen, geht es wieder an den Anfang des Stapels und blättert alles durch, bis es an den nächsten Ort gelangt.

GOSUB macht fast das gleiche wie GOTO, aber es erinnert sich, wo es war. Wenn Sie die RETURN-Anweisung verwenden, springt sie einfach zurück, ohne zuerst zum Anfang des Stapels zu gehen und alles noch einmal durchzuschneiden, also ist es viel schneller. Wenn Sie möchten, dass Ihr Code schnell ausgeführt wird, sollten Sie die meisten aufgerufenen Unterroutinen an den Anfang des Stacks setzen und GOSUB/RETURN anstelle von GOTO verwenden.