es gibt auch in Bascom verhaltensreln, les dir mal die hilfe durch.
Hallo Leute,
aufgrund aktueller Probleme in meinem BASCOM-Programm und des großen durcheinander gemixten Zeugs, wollt ich fragen ob mir mal einer den Unterschied zwischen den folgenden Fällen erläutern kann:
Mir geht es eigentlich nur darum, wie sich das Programm verhält im Bezug auf das Springen von einem Punkt zum anderen.
Fall1:
Was passiert hier? wird über das Return wieder nach oben zurück gesprungen? oder kann das sein, das unten das Return einfach ignoriert wird und weiter gegangen wird?Code:Goto Auswertung ... Weiter Befehle Do Loop Auswertung: ... Hier stehen Befehle ... Return
Fall2:
Und jetzt wirds wild:Code:Declare Sub Auswertung ... Befehle Auswertung ... Weiter Befehle Do Loop Sub Auswertung ... Hier stehen Befehle ... Return End sub ... Nächstes Sub
2.1: Was ist der unterschied wenn ich das sub einfach nur mit "Auswertung" aufrufe zu dem Aufruf über "Gosub Auswertung". Macht das einen unterschied? Wenn ja, welchen?
2.2: Und wird nach der Ausführung des Subs wie in VB automatisch wieder nach oben gesprungen, wo der Befhl zum Sub-Aufruf steht? Oder geht das nur mit dem Return?
2.3: Was passiert wenn man das Return weg lässt? Wird dann einfach mit dem nächsten Sub weiter gemacht?
Hoffe ihr könnt mir da etwas Klarheit verschaffen.
Tausend Dank schonmal im Vorraus für eure Bemühungen.
Gruß Robodriver
es gibt auch in Bascom verhaltensreln, les dir mal die hilfe durch.
Hm, mein Bascom ist in Englisch...
Und mit Rules oder so finde ich in der Hilfe auch nicht wirklich was...
Erstmal: "GOTO" hat mit Sub oder Function und "RETURN" nix zu tun.
Dein Fall1 führt also ins Nirwana.
GOSUB Da mußt du bei der aufgerufenen Subroutine immer auch "RETURN" angeben. Das ist sozusagen die Grundvariante, bei der sich der Bascom nicht einmischt. (vergißt du das RETURN, läuft er einfach weiter zum nächsten Statement dahinter, was es auch sei ==> nächstes Nirwana)
Bei Deklarierten SUB's oder fUNCTIONS macht der Bascom automatisch bei "end sub" (oder function) aber auch bei "exit" ein "return" rein.
Sub oder function unterscheiden sich nur insofern, als dass es bei FUNCTION einen Rückgabewert gibt.
Ob du dann
CALL SUB(arg)
oder nur
SUB(arg)
hinschreibst, is egal, da denkt Bascom einfach mit.
Ein paar Details:
https://www.roboternetz.de/wissen/in.../Bascom_Inside
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Lesezeichen