Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Compiler - Wunsch Kategorie: Programmierung Basic (von Carsten - 21.10.2004 13:32)
 Als Antwort auf Re: Compiler - Wunsch von Dietmar_B - 21.10.2004 12:30
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 THEN gosub machdies: goto hierhin ELSE gosub machdas: goto dorthin
> >
> > 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

Bisherige Antworten: