INFO - FAQ - CC2-Forum - CCPro-Forum |
Hallo Carsten, das stimmt so nicht ganz. Unterprogramme beginnen immer mit einer Adresse (#label) und enden mit dem Befehl return, und Unterprogramme stehen i.d.R. nach dem END - Befehl des Hauptprogramms. D. H. Die Befehlszeile IF i=1 then gosub routine1 else gosub routine2 bedeutet, daß das Unterprogramm Routine1 abgearbeitet wird wenn i = 1 ist oder Routine2, wenn I <> 1 ist. In Beiden Fällen wird nach Abarbeiten des Unterprogrammes mit der Programmzeile die nach dem IF-Befehl steht weitergemacht. Ich bin vieleicht nicht gut im Erklären. Falls ich Dir aber an einem konkreten Beispiel helfen kann wende dich ruhig an meine e-mail-Adresse. mfg Dietmar > Gut gemeint aber damit geht nicht fogendes: > > IF > in dem fall müßte ich aus dem Unterprogramm "machdies" springen nach "hierhin", und das tut man doch nciht :-) . Es ist ja nicht so, daß ich mein Problem mit "goto's" nicht gelöst kriegte, aber der Quelltext liest sich einfacher wenn es ginge wie wie oben beschrieben... > > > > Hallo Carsten, > > > > versuche es enmal mit gosub Routine1 und gosub routine2 statt mit action1 und action2. > > > > Also z. B. If i = 1 gosub Routine1 > > If I = 2 gosub Routine2 > > > > oder If i = 1 gosub Routine1 else gosub routine2 > > > > In solchen Unterprogramme kannst Du dann beliebig viele Befehle ausführen lassen. > > > > mfg > > > > Dietmar_B > > > > > Hallo DIE HARD, > > > > > > In der Dokumentation zum IF ("IF condition THEN action1 ELSE action2") fehlt meiner Meinung nach der Hinweis, daß action1 und 2 nur genau eine Anweisung beinhalten dürfen. Es wäre schöner wenn es mehrere wären (das ist der Wunsch), und es kann darüber hianus zu Mißverständnissen führen: > > > > > > define i byte > > > i=1 > > > > > > if i = 1 then i=1:i=2:i=3 'kein syntax - error! > > > print i > > > > > > if i = 1 then i=1:i=2:i=3 ELSE i=4:i=5:i=6 'generiert syntax error > > > print i > > > > > > In diesem Beispiel erhält man eine Syntaxmeldung beim zweiten IF (mit ELSE), aber nicht beim ersten IF. Daher könnte man vermuten, daß i=1:i=2:i=3 nur ausgeführt wird wenn i=1, und nicht (wie es tatsächlich ist), daß i=2 und i=3 in jedem Fall ausgeführt werden. Da sollte der Compiler zumindest auch beim ersten IF sagen "Zeilenende erwartet". > > > > > > Gruß Carsten > > > |
Antwort schreiben |