- fchao-Sinus-Wechselrichter AliExpress         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 28 von 28

Thema: if then else Schleife möglich mit goto zu verlassen?

  1. #21
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Zitat Zitat von oberallgeier
    Zitat Zitat von PicNick
    ... Da hüpft er rum wie Rumpelstilzchen ...
    Zitat Zitat von Vitis
    ... nicht lustig machen über den Urheber, den auch nicht verteufeln ...
    Ach wie gut, dass niemand weiß, dass er Rumpelstilzchen heißt.

    Zitat Zitat von PicNick
    ... im ersten Überschwang weniger moderat ausgedrückt ...
    Was sagte Rumpelstilzchen zum Schluss ?
    Das ist der erste interessante Beitrag dieser Diskussion. Zudem ist es auch das erste Mal, dass es aus dieser Perspektive beleuchtet wird.

  2. #22
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693
    Zitat Zitat von thewulf00
    ... das erste Mal, dass es aus dieser Perspektive ...
    Es ist das erste Mal, dass ich etwas über diese Art zu Programmieren gehört hatte. Spaghetticode kenn ich ja, aber jetzt eben auch Rumpelstilzchencode. Immerhin kann ich so mal meine eigenen Oevres prüfen, aber ob die danach besser sind, wage ich doch zu bezweifeln. Ich gehöre (auch) leider zu denen, die glücklich sind, wenn ein Code mal läuft. Egal ob Rumpeletti oder Spaghstilzchen. Egal wie lang und krumm die Ghettis sind oder wie rumpelig das Stilzchen. Aber ich versuche mich zu bessern. Und ich reisse mich nie selbst mitten entzwei - auch wenn mir manchen fehlerhaften Code eher der T... gesagt hat.

    ....................................Bild hier  
    Ciao sagt der JoeamBerg

  3. #23
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    Guten morgen,
    der goto-Sprungbefehl gilt heute bei vielen Programmierern als verpönt, da es keinen einzigen Grund gibt, diesen Befehl zu benutzen. Mit der goto-Labelanweisung kann ein genaues Sprungziel festlegt werden. Es ist dabei egal, ob das Sprungziel vor oder nach dem goto-Statement im Programm aufgeführt wird. Einzige Bedingung ist dabei, dass die Sprunganweisungen und Marken in derselben Funktion liegen müssen.
    Warum also ist goto so verpönt? Aus Performancegründen! Durch goto wird der normale Ablauf des Programms einfach unterbrochen. Ein weiterer Grund, goto nicht zu verwenden: Wenn mit goto in einen Anweisungsblock gesprungen wird, der lokale Variablen beinhaltet, ist das Verhalten systemabhängig. Es gibt wohl kaum ein Problem, das sich nicht auch ohne goto lösen lässt. Man kann sagen, dass ein goto mit einem Sprung nach vorne nichts ausmacht. Von einem goto, das aber zurückspringt, kann nur abgeraten werden. In solch einem Fall (zurückspringen) kann z.B. die do-while-Schleife als bessere Alternative verwendet weden.
    Ich persöhnlich benutze auf keinen Fall ein goto, egal in welcher Sprache. Es gibt einfach keinen Grund, diesen Befehl einzusetzen.
    Oh, ich merke gerade, dass das nicht richtig ist. Ich benutze ihn doch. Wenn in Bascom ein Reset des Programms durchgeführt werden soll/muss, wird das mit goto 0 gemacht. Dabei werden aber auch alle Vatiablen zurück gesetzt und ist somit meiner Meinung nach ein Ausnahmefall.
    Durch goto wird ein Code unstrukturiert und unleserlich.
    Peter
    _________________________________________________
    [-X Quis custodiet ipsos custodes
    Ground-Effect-Stability-Robot www.peter-holzknecht.de

  4. #24
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Hehe, dieser Beitrag gefällt mir sehr. Ich glaube, ich klaue mir das mal eben. (siehe unten)

  5. #25
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Was die Sache mit den GOTO's noch etwas aufmischt ist ja die Tatsache, dass der Prozessor bei jedem JMP seinen ganzen Pre-fetch Buffer in den Kübel schmeissen muss, so er denn einen hat. Bei den alten x86 Intel's war das durchaus noch ein Thema.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #26
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Zitat Zitat von PicNick
    Was die Sache mit den GOTO's noch etwas aufmischt ist ja die Tatsache, dass der Prozessor bei jedem JMP seinen ganzen Pre-fetch Buffer in den Kübel schmeissen muss, so er denn einen hat. Bei den alten x86 Intel's war das durchaus noch ein Thema.
    Das wäre das einzige gewesen, was ich auch hätte sagen wollen. Dennoch habe ich es nicht getan, weil das nicht nur bei GOTO der Fall ist, sondern auch bei Verzweigungen, Schleifen, Funktionssprüngen, usw. Also allem, was auch in ASM mit goto gemacht würde.

  7. #27
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Nun, schon, aber es gilt nur für JMP's, die auch gemacht werden. D.h. Man versucht die Verzweigung nur in den weniger häufigen Fällen zu machen.

    Ist aber abgeschweift, denn logo gibt es immer den Spagat zwischen prozessorfreundlich und wartungsfreundlich strukturiert.
    Im Idealfall schreibt man ja letzteres und hofft, dass der Optimizer ersteres daraus macht.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #28
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Bei einer IF-ELSE-Anweisung oder jeder Schleife mit mehr als einem Durchlauf ist automatisch der Prefetch-Buffer überflüssig.

Seite 3 von 3 ErsteErste 123

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen