aus zwei for-Schleifen "ausbrechen"
-
Zum Beispiel wenn man der inneren Schleife keinen Namen zuordnen kann und dementsprechen nicht weiß wie man die Funktion benennen sollt. Dann finde ich es logischer ein goto, oder meinetwegen auch ein Flag zu benutzen anstatt es in eine Funktion auszulagern die "goofy" heißt, nur weil mir nichts besseres eingefallen ist. Aber wie gesagt: Hab in den Jahren die ich mich mit der Programmierung beschäftige ein oder zwei Mal ein goto für Sinnvoller gehalten.
-
aber goto zu verwenden weil einem kein gescheiter name einfällt, kanns auch irgendwie nicht sein.
-
Doch klar. Wenn einem kein Name einfällt, hat die Funktion auch keinen Sinn, ausser das goto zu vermeiden. Und an dem Punkt wirds albern.
-
(achtung analogie)
solange du referenzen verwenden kannst, musst du auch keine zeiger verwendenint &i = *new int(10);
na toll.
Wenn ein Sprachmittel angebracht ist, dann verwende es auch. Wenn es in C++ eben nicht solche break label; wie in Java gibt, nimm eben goto. Wenn es am einfachsten und am verständlichsten ist, spricht doch nichts dagegen
-
Mir gings darum, dass Anfängern hier immer öfter geraten wird evtl. goto zu verwenden. In 99,99999% aller Fälle hätte man das aber mit Funktionen sicherlich schöner lösen können.
Ich war, wie gesagt, noch nie in der Situation, dass ich dachte "Mensch, mit goto wärs einfach, aber das will ich nicht nehmen weil alle sagen das ist doof.".
Seine Funktionen "goofy" zu nennen weil man krampfhaft goto vermeiden will ist auch blöd, aber wann kommt dass denn vor? Goto klingt für mich immer nach Notlösung weil einem nix besseres einfällt.
-
DrGreenthumb schrieb:
Ich war, wie gesagt, noch nie in der Situation, dass ich dachte "Mensch, mit goto wärs einfach, aber das will ich nicht nehmen weil alle sagen das ist doof.".
Cool, ich schon. Letztes Jahr beim Buha-Contest, und ich war mir nicht sicher, ob ich Abzug kriege wenn ich goto (sinnvoll) einsetze, also hab ichs kompliziert umgebaut. Das waren zugegeben keine verschachtelten Schleifen. Aber den Thread müsstes hier noch geben, ich bin nur zu faul zum suchen.
-
Ich glaub ich kann mich daran erinnern. Soweit ich weiß gings doch aber um Fehlerüberprüfung in C, was man in C++ mit Exceptions hätte lösen können.
Naja, wenn ein erfahrener Programmierer goto verwendet weils das beste ist, ok. Nur dieses allgemeine "goto ist manchmal garnicht so schlecht" als Tip für solche Probleme finde ich nicht richtig.
-
DrGreenthumb schrieb:
Ich glaub ich kann mich daran erinnern. Soweit ich weiß gings doch aber um Fehlerüberprüfung in C, was man in C++ mit Exceptions hätte lösen können.
Nö, um den Neustart eines wegen eines empfangenen Signals unterbrochenen Syscalls.
Nur dieses allgemeine "goto ist manchmal garnicht so schlecht" als Tip für solche Probleme finde ich nicht richtig.
Man sagt immer, goto sei zu vermeiden, weil es in 99% der Fälle unangebracht ist. OK. Aber warum läßt man es dann nicht zu, wenn man auf einen der 1% restlichen Fälle trifft?
-
Hallo,
also zum Thema "goto ja/nein" kann ich nichts sinnvolles beitragen, da ich bisher noch nie in einer Situation war, in der es mich nach der Verwendung von goto verlangte.
Das mag sicher an der Art der Programme liegen, die ich schreibe und sicher auch an meiner Sozialisation. Wie auch immer.Der Satz: "Wenn einem kein Name einfällt, hat die Funktion auch keinen Sinn, ausser das goto zu vermeiden"
kommt mir im Zusammenhang dieses Threads aber sehr merkwürdig vor. Wenn mir kein Name einfällt, dann hat imo nicht nur die Funktion keinen Sinn sondern ebenso auch das goto. Dann hat schlicht und einfach die Berechnung/Aktion ein Sinn-Problem (oder ich ein Verständnis-Problem).Wenn ich in einer (verschachtelten) Schleife an manchen Punkten eine Aktion durchführe, die die Schleife beendet, dann sollte diese Aktion einen ganz bestimmten Sinn haben. In diesem Fall sollte ich diesem Sinn aber auch einen Namen geben können.
Fällt mir kein Name ein, dann scheint mir das ein prinzipielles Problem im Code zu sein. Eines das sich nicht durch goto lösen lässt. Entwder weiß ich, was ich mache und ich kann dem was ich tue einen Namen geben, oder ich weiß es nicht, dann sollte ich mir überlegen, *warum* ich überhaupt das tue was ich tue bzw. ob ich nicht lieber etwas ganz anderes tun sollte.Ich für meinen Teil habe zumindest die Erfahrung gemacht, dass das Fehlen eines guten Namens ein Hinweis darauf ist, dass ich nicht sicher weiß, was ich eigentlich gerade mache.
Aber wie gesagt: Das ist nur meine Erfahrung und keine allgemeine Aussage zum Thema goto.
-
Bashar schrieb:
Man sagt immer, goto sei zu vermeiden, weil es in 99% der Fälle unangebracht ist. OK. Aber warum läßt man es dann nicht zu, wenn man auf einen der 1% restlichen Fälle trifft?
wenn... ich glaube halt einfach nicht, dass die Fragen die hier so von Anfängern gestellt werden, wirklich am besten mit goto zu lösen sind.