PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Select case , if then,for next schleifen verlassen ????



molleonair
05.04.2007, 19:14
Hallo obwohl es zwar nicht schön ausschaut möchte ich wissen ob es möglich ist schleifen anstatt mit endif,endfor etc auch über goto zu verlassen

zB
select case a
case 1 :b=2:goto xyz
case 2:b=4
endselect

xyz:
if f=1 then
if c=3 then goto abc
elseif x=y goto def
else r=5
endif
r=6
endif

Der Sinn des Beispielcodes erhält das Prädikat SINNLOS

mich würde interessieren ob es geht oder diese Anweisungen immer mit end..
verlassen werden müssen

Danke Gruß Daniel

linux_80
05.04.2007, 20:29
Hallo,

schau dir mal Exit an, hiermit kann man diverse Sachen vorzeitig verlassen, Goto ist nicht die beste Wahl !

molleonair
05.04.2007, 21:30
hi linux ..exit ist nicht das was ich will
wie soll ich ZB mit exit das programm an einer bestimmten stelle fortsetzten ..
dann müßt ich erst wieder ein flag setzten über den ausgang des schleifenkörpers und an dessen ende das flag auswerten.
Somit müßt ich zB am ende einer Select case anweisung mit 10 Case möglichkeiten 10 verschiedene flags auswerten um dann zu springen.

ich kann ja nicht schreiben
case a=1:exit case:goto xyz:
da nach dem exit case sofort das ende der select-case Anweisung angesprungen wird

mir geht es auch nicht um Möglichkeiten eine bestimmte Programmstruktur so umzuschreiben das ich kein GOTO mehr brauch.
Ich will einfach nur wissen obs Möglich ist oder ob der AVR sich irgendwann überschlägt.
Die diversen for-next,select-case Anweisung sind ja in assembler compiliert eh nur Sprunganweisungen die keiner sehen will weils ja ach
so schlechter Programierstil ist.Das sich ein Algorithmus mit Sprungmarken
viel besser in Assembler portieren lässt als diverse select case,while-wend konstrukte dürfte ja wohl auch klar sein.

PicNick
06.04.2007, 07:01
Also, TECHNISCH ist das kein Problem mit "goto"

Es ist halt nur einfach "pfui", ganz allgemein gesagt.

molleonair
06.04.2007, 07:30
mein Dank für kurze kompetente Antwort geht heute
wiedermal an ............
Trommelwirbel.........

PicNick

linux_80
06.04.2007, 10:57
Dem AVR ist es egal wie oft man hin- und herspringt, wenn einer durcheinander kommt ist es eher der Programmierer, wenn man den Programmablauf nicht mehr klar erkennen kann ! Vor allem wenn man erst nach längerer Zeit wieder mal reinschaut.