Mein Informatiklehrer sagt, dass



  • Hallo,
    mein Informatiklehrer sagte mir, dass break und continue schlechter Programmierstil sind. Stimm das? Ich weiß wohl, dass man von goto Abstand halten sollte, aber ich sehe keinen Grund, warum break und continue nicht angebracht sind!?

    Vielen Dank
    lg, freakC++



  • lol^^

    Switch without breaks oO
    Stupid teacher...



  • LOL, wie soll man denn sonst aus ner Schleife springen, als mit break. Oder bei nem Wert, den man nicht zu verarbeiten braucht, schnell mit nem continue in den nächsten Schleifendurchlauf eilen?

    Oder war das ein spezieller Fall, in dem der das erwähnt hat?



  • Nein, ich habe continue verwendet um einen neuen Schleifendurchlauf anzufangen...

    lg, freakC++



  • Ich find es eigentlich schöner und übersichtlicher, wenn man in ner Schleife erst alles ausschließt und mit nem continue weiterhüpft, und dann schön in nem Block die Aurbeit erledigt, als in nem Monster-if-Konstrukt genau den Fall herausfiltert, mit dem man weitermachen will.

    Also: goto ist "böse" break und continue eigentlich eher nicht...



  • freakC++ schrieb:

    mein Informatiklehrer sagte mir, dass break und continue schlechter Programmierstil sind. Stimm das?

    Nein, das ist totaler Schwachsinn. Dem Lehrer würde ich nicht mehr allzu viel glauben.

    Gewisse Schleifen werden einfach sehr hässlich, wenn man kein break oder continue benutzt. Zum Beispiel, weil es die Schleifenbedingung bzw. den Schleifenkopf unnötig in die Länge zieht und in komplizierten Abbruchbedingungen resultiert. Da ist es oft sinnvoller, ein strukturiertes break oder continue hinzusetzen.

    Oder wie mein Vorposter sagte, kann man sich eine Verschachtelungsebene sparen, wenn man vorzeitig continue einsetzt.



  • Alles klar! Damit habt ihr mich bestätigt! Konnte ich mir auch eigentlich nicht vorstellen!

    Vielen Dank
    lg, freakC++



  • Nexus schrieb:

    Nein, das ist totaler Schwachsinn. Dem Lehrer würde ich nicht mehr allzu viel glauben.

    Ich glaube nicht, dass du soweit gehen kannst das zu behaupten. Das Thema ist umstritten und eine allgemeine Sichtweise existiert nicht. Du kannst höchstens deine Meinung dazu kundtun.

    Nexus schrieb:

    Gewisse Schleifen werden einfach sehr hässlich, wenn man kein break oder continue benutzt.

    Man könnte dasselbe auch über Schleifen, die mit break continue "geschmückt" sind behaupten.

    Wie gesagt, bei dem Thema streiten sich die Experten und solange es Zwist darüber gibt ist man auf der sicheren Seite (notenmäßig) wenn man die Meinung des Lehrers wiedergibt. Wenn auch nicht freudig. 🙂



  • Nexus schrieb:

    freakC++ schrieb:

    mein Informatiklehrer sagte mir, dass break und continue schlechter Programmierstil sind. Stimm das?

    Nein, das ist totaler Schwachsinn. Dem Lehrer würde ich nicht mehr allzu viel glauben.

    Das kannste laut sagen, wenn man einmal ein Humbug von dem Lehrer hört, sollte man aufpassen und immer irgendwo nachschlagen ob die Aussage stimmt. (Sollte man eigentlich immer^^)



  • Wenn man in einer Schleife, die nur einen Ausgang hat, break braucht, dann ist möglicherweise die Schleifenbedingung falsch formuliert. Natürlich kommt es - wie immer - auch auf den Fall an.

    Die Vermeidung von continue im Schleifenkörper erhöht dann aber die Schachtelung. Da kann man geteilter Meinung sein, ich persönlich finde innerhalb einer Methode sollte die Schachtelung nicht über zwei oder drei Ebenen hinaus gehen.



  • break/continue erlauben sehr schöne und effektive Konstrukte.



  • Mitleid mit Mitleid schrieb:

    break/continue erlauben sehr schöne und effektive Konstrukte.

    Deine Meinung. Andere (vermutlich qualifiziertere) Personen vertreten eine andere Meinung.

    Ich positioniere mich nicht, sondern weise nur darauf hin, dass das Thema umstritten ist. Und allgemeine Aussagen, besonders welche, die "starke" Wörter wie "Schwachsinn" enthalten doch eher mit Vorsicht zu genießen sind. 😉



  • Mitleid schrieb:

    Ich glaube nicht, dass du soweit gehen kannst das zu behaupten. Das Thema ist umstritten und eine allgemeine Sichtweise existiert nicht. Du kannst höchstens deine Meinung dazu kundtun.

    Mitleid schrieb:

    Ich positioniere mich nicht, sondern weise nur darauf hin, dass das Thema umstritten ist. Und allgemeine Aussagen, besonders welche, die "starke" Wörter wie "Schwachsinn" enthalten doch eher mit Vorsicht zu genießen sind. 😉

    Natürlich ist es Schwachsinn, zu pauschalisieren, dass continue und break grundsätzlich und immer schlechter Codestil sind. Mehr habe ich nicht gesagt.



  • Mitleid schrieb:

    Deine Meinung. Andere (vermutlich qualifiziertere) Personen vertreten eine andere Meinung.

    Poste mal bitte einen Link in dem eine für dich qualifizierte Person sich allgemein kritisch gegenüber continue/break äußert. Ich konnte nämlich grade nix finden!

    Oder gib zu mindest mal ein Argument!



  • break und contine sind sehr nützlich, wenn man verrückten Code schreibt.
    http://www.c-plusplus.net/forum/viewtopic-var-p-is-1761346.html#1761346



  • Orakel-Joe schrieb:

    Poste mal bitte einen Link in dem eine für dich qualifizierte Person sich allgemein kritisch gegenüber continue/break äußert. Ich konnte nämlich grade nix finden!

    Oder gib zu mindest mal ein Argument!

    Jetzt muss man hier schon rumgoogeln. 😃

    http://dustingetz.wikidot.com/blog:break-and-continue

    Wie gesagt, mir sind die Argumente völlig schnuppe. Ich behaupte nur, dass wenn ein Lehrer Wert darauf legt, dass keine break/continue Konstruktionen verwendet werden sollen, dann kann er auch Argumente dafür ins Feld führen.

    P.S.: Wenn du noch ein paar Links aus qualifizierter Quelle anführen kannst, warum es besonders positiv ist break und continue einzusetzen, dann wäre der Thread ja vollständig.

    Auch da kann ich dir aushelfen. Der in dem Link zitierte Steve McConnell führt in seinem Buch "Code Complete" auch ein paar sinnvole Konstruktionen mit break/continue vor.



  • Ich finde, beides kann sehr praktisch sein. Da man mit break und continue eigentlich nur hinter das Schleifenende bzw an den Schleifenanfang springen kann, sehe ich da auch nicht, wie dies Lesbarkeit negativ beeinflusst.

    Das break ist praktisch für Schleifen, bei denen die letzte Iteration nur zur Hälfte durchgeführt werden soll. Also in etwa nach folgendem Muster:

    for(...;;...) {
       ...
       if (...) break; // Abbruchbedingung 
       ...
     }
    

    Und continue habe ich neulich auch mal wieder genutzt. Ich sah in dem Fall keine elegantere Möglichkeit.

    Gruß,
    SP



  • Nexus schrieb:

    Nein, das ist totaler Schwachsinn. Dem Lehrer würde ich nicht mehr allzu viel glauben.

    Na, nur weil ein Mensch in einer Sache etwas nicht richtig weiß, heißt das nicht, das er sonst keine Ahnung hat.



  • doch klar, dass C++ler auf break und continue stehen, weil C++ zu kompiliziertem Denken verleitet.



  • Artchi schrieb:

    Na, nur weil ein Mensch in einer Sache etwas nicht richtig weiß, heißt das nicht, das er sonst keine Ahnung hat.

    Nein, das sicher nicht.

    Aber es gibt nun mal einige Lehrer, die nicht wirklich auf dem Laufenden sind, ihre zehnjährigen Skripte benutzen und sich stur gegen den Fortschritt wehren. Das sieht man auch ab und zu wieder an Posts in diesem Forum. Von daher ist es sicher nicht schlecht, wenn man gewisse Dinge in Frage stellt und nicht einfach davon ausgeht, dass Lehrer Recht haben. Es wäre vielleicht besser gewesen, ich hätte geschrieben: "Dem Lehrer würde ich nicht mehr allzu viel blind glauben."

    Und Unwissen in einem Teilgebiet ist ja etwas, aber verallgemeinernde Sätze wie " break und continue sind schlechter Codestil" - dann noch über Dinge wie Stil, wo ein beträchtlicher Teil auch vom Auge des Betrachters abhängt - sind oft ein Hinweis darauf, dass man auch mit anderen Aussagen vorsichtig sein sollte.


Anmelden zum Antworten