INFO - FAQ - CC2-Forum - CCPro-Forum |
Ich hab Dich schon verstanden, nur ich will nicht generell mit der nächsten Zeile weitermachen, sondern an verschiedenen Stellen / das hab ich versucht mit "hierhin" und "dorthin" zu symbolisieren... ;-) > 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 |