GOTO ist nicht langsam



  • hohesC schrieb:

    while(a) 
    	{ 
    		while(c) 
    		{ 
    			while(d) 
    			{ 
    				if(e)break;
    			}
    			if(e)break;
    		}
    		if(e)break;
    	}
    

    auch wenns mehr code ist, lässt sich einfach ersetzen!

    Das würde dann aber auch nur funktionieren, wenn e mindestens im while(a)-Block definiert (und/oder) deklariert wird.



  • GotoLover schrieb:

    ...
    ...
    while(a)
    {
       while(c)
       {
          while(d)
          {
              if (e)
                 goto fertig;
          }
       }
    }
    fertig:
    ...
    ...
    

    oder so:

    ...
    ...
    while(a && c && dd && !e)
    {
    }
    ...
    


  • So find ichs eleganter und übersichtlicher...

    switch(foo)
    {
    case 'a':Befehl1();break;
    case 'c':Befehl2();break;
    case 'd':Befehl3();break;
    case 'e':Ende();   break;
    }
    

  • Mod

    Mahlzeit schrieb:

    oder so:

    ...
    ...
    while(a && c && dd && !e)
    {
    }
    ...
    

    nur wenn a,c,dd und e nicht volatile sind - und das gilt dann im übrigen auch für die variante mit break - dort darf e ebenfalls nicht volatile sein.



  • @Mahlzeit, cico2005:
    hä?

    Man sollte davon ausgehen, das a,c,d,e komplexere Bedingungen sind, die sich inner halb der jeweiligen Blöcke ändern.



  • hi
    leute ich weiß nicht wasihr habt GOTO4EVER



  • peterchen schrieb:

    @Mahlzeit, cico2005:
    hä?

    Man sollte davon ausgehen, das a,c,d,e komplexere Bedingungen sind, die sich inner halb der jeweiligen Blöcke ändern.

    Dann schreib es genauer hin und ich ändere es dir entsprechend. Im Moment ersetzt mein Code deinen exakt. Ich kann ja nicht ahnen, was du dir noch dazudenkst. Was du dir auch immer ausdenkst, es wird immer ohne goto gehen.



  • Schluss jetzt! Wie kleine Kinder, die immer Recht haben wollen...
    Vor wem müsst ihr euch rechtfertigen?



  • Die heutige Entwicklung von Programmer basiert meist auf ein großes Team das ziemlich gut zusammen arbeiten müssen kann. Dazu gehört auch dass man Quellcode gut auskommentiert und strukuriert aufbaut. GoTos verschlechtern die Lesbarkeit des Codes, und bei komplexen verschachtelten Schleifen wird man nach einer gewissen Zeit mit den Schleifen mehr Überblick behalten, das steht für mich ganz klar fest.



  • c.rackwitz schrieb:

    Schluss jetzt! Wie kleine Kinder, die immer Recht haben wollen...
    Vor wem müsst ihr euch rechtfertigen?

    Du bist doch eher das kleine Kind, welches nicht einsehen will, dass wir Recht haben, nur weil du selber etwas nicht kannst, was wir können.

    Da sagst du natürlich "Schluss jetzt", weil du uns ncihts mehr entgegenzusetzen hast und nicht einsehen kannst, dass du verloren hast.



  • Schluss jetzt!

    Nö!

    Vorwärts zum Größeren Ruhme GOTO's! ;p

    @Mahlzeit:
    Ist ja nicht mein Code - ich hab ihn als "Strukturangabe" verstanden.

    volatile a,b,c,d,e,f,g;
    ...
    while(a)
    {
      ...
       while(c)
       {
          ...
          while(d)
          {
              ...
              if (e)
                 goto fertig;
              ...
          }
          ...
       }
       ...
    }
    fertig:
    ...
    

    Der "..." - Operator wird hierbei im exekutiven Kontext als "Do what I mean" - Anweisung verwendet (mein Vorschlag für den C++201x - Standard).

    --------

    Ist ja nicht , daß ich ein goto-fetishist bin. Hab mal unsere Quellen gescant (2037 files, 23MB sources):
    4 gotos von mir, zu dreien davon steh ich 🙂
    4 gotos nicht von mir, die ich für total sinnlos halte 😃

    80 in einer externen libary... 🙄



  • Da der Ansi-Standard besagt, dass der Compiler volatile ignorieren darf, bin ich nun mal so ein Compiler und ales bleibt beim alten. Außerdem habe ich volatile aufm PC noch nie verwendet, höchstens mal auf nem uC. Sauber ist es aber auch dort nicht. Also arg konstruiert dein Beispiel.
    Das Beispiel ist ansonsten zu allgemein, um es umzuschreiben, kann ja auch nicht wissen "what you mean". Poste doch mal eines der Beispiele, zu denen du stehst.



  • Mahlzeit, für mich bist du der Troll des Jahres. Registrier dich wenigstens mal, du identitätsloser Vandale. (bezogen auf deinen vorletzten Post)

    Edit: Der Punkt ist doch nicht, dass es immer ohne GOTOs geht. Das stimmt ja wenigstens. Der Punkt ist, dass ich nicht prinzipiell leugnen will, dass GOTOs in manchen Situationen besser sind.



  • Mahlzeit schrieb:

    c.rackwitz schrieb:

    Schluss jetzt! Wie kleine Kinder, die immer Recht haben wollen...
    Vor wem müsst ihr euch rechtfertigen?

    Du bist doch eher das kleine Kind, welches nicht einsehen will, dass wir Recht haben, nur weil du selber etwas nicht kannst, was wir können.

    Da sagst du natürlich "Schluss jetzt", weil du uns ncihts mehr entgegenzusetzen hast und nicht einsehen kannst, dass du verloren hast.

    Is klar... Hier kann überhaupt neiamnd etwas verlieren. GoTo oder Schleife macht funktionell keinen Unterschied (wie schon 1000 mal erwähnt inzwischen). Es ist jediglich eine Frage des Stils und der Übersichtlichkeit und Lesbarkeit des Codes. Und jeder anständige Programmierer kann eine Schleifenkonstruktion schneller durchschauen als eine GoTo-Konstruktion.

    Deine Argumentation ist kindisch, und dass das hier ausartet und nichts mehr mit dem Thread zu tun hat (der sich an die Performance gerichtet hat) ist ja wohl klar.



  • @FireFlow

    Lerne Lesen!

    @crackwitz

    dann auf dem registrieren rumhacken... albern!



  • FireFlow schrieb:

    Die heutige Entwicklung von Programmer basiert meist auf ein großes Team das ziemlich gut zusammen arbeiten müssen kann.

    lern mal deutsch alter oder rede nur noch c



  • --linuxuser-- schrieb:

    lern mal deutsch alter oder rede nur noch c

    lol, sagts und ist selber kein Stück besser...



  • schließt mal einer den thread?
    das artet ja in einen flamewar aus.

    wieso hat das board eigentlich keine PM funktion?
    dann müssten solche privatsachen nicht im thread ausgetragen werden.

    [flame]
    Mahlzeit, wenn du ein Problem mit mir hast, schreib mich im ICQ an oder komm in den EuIRC, in #python
    [/flame]



  • <ironie>
    Wir könnten uns auch alle treffen und auf uns einprügeln. Der letzte der steht hat dann Recht
    </ironie>

    Ich sags gern nochmal: Es gibt kein richtig/falsch zu goto, es ist eine Sache des Stils!

    So und nun dürft ihr euch weiter über mein Rechtschreibfehler freuen 🙄

    Ich schließe mich c.rackwitz an: Thema geklärt -> Close



  • Ich fasse dann nochmals zusammen:

    "goto" ist in den seltendsten Fällen von Nutzen, da es fast immer vermieden werden kann und auch sollte, da es grundsätzlich schlechter Stil ist. Das es auch mit goto funktioniert und keine Performance-Frage ist, steht außer Frage.

    Damit : Thema geklärt -> Close


Anmelden zum Antworten