GOTO ist nicht langsam
-
Ich bin mal so frei:
do { a(); if (bedingung2()) break; b(); } while (bedingung1());
Sonst noch was?
-
do { a(); if(bedingung2()) break; b(); } while(bedingung1());
-
sorry Dingo, ich war zu spät
-
hohesC schrieb:
sorry Dingo, ich war zu spät
immerhin sind wir uns einig
-
noch zum thema goto:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-70689-and-highlight-is-.html
-
@Mahlzeit: lol, warum denn gleich beleidigend werden? gehen dir die argumente aus? sprich mich im icq an, dann reden wir weiter. kannst dich auch mal hier im forum anmelden, damit du nicht mehr so anonym bist...
hohesC hat einen guten link gepostet. exceptions oder mehrfache breaks emuliert man am schnellsten mit gotos. mehr wollte ich nicht ausdrücken.
davon abgesehen... wieso seid ihr alle so verdammt militant?
wenn einer gotos nehmen will, lasst ihn.
wenn einer gotos hasst, lasst ihn.
-
Foo * foo = NULL; goto entry; do { Process(foo); entry: foo = GetNextFoo(); } while (foo);
_ohne_ ProcessFoo oder GetNextFoo 2x zu verwenden
-
Foo * foo = NULL; while(foo = GetNextFoo()) Process(foo);
naja, das bekomm ich schon noch besser ohne goto hin.
-
GetNextFoo() ist bei mir leider ein mehrzeiler
-
... ... while(a) { while(c) { while(d) { if (e) goto fertig; } } } fertig: ... ...
-
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!
-
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; }
-
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.