Goto und Verwandte
-
Wurstinator schrieb:
@ Bashar: Wie du sagtest, meint er, Blöcke haben nur einen Eingang und Ausgang. Laut ihm wird der Code unübersichtlich, wenn man so "herumspringt".
Ja, das ist die alte Schule. Wo es die ganzen tollen Features die wir heute haben noch nicht gab. Damals hat das Sinn gemacht. Single Entry/Single Exit.
Heute ist das halt komplett ueberholt.
Vielleicht bin ich ja einfach ein schlechter Programmierer, aber in Ruby hab ich break schon ab und zu benutzt. Öfter als continue :p
Ich wuerde darauf tippen das deine Funktionen generell laenger als 10 Zeilen sind. Stimmt das?
-
Naja, vor allem in C ist goto für CleanUp Code doch durchaus schön anwendbar.
Verstehe den Rummel darum nicht, wenn mans nicht missbraucht ist es ein akzeptables Sprachfeature.
-
@Ethon:
Genau. In C finde ich es schon fast plem strikt aufgoto
zu verzichten.In den letzten Jahren hab ich in C++ aber kein
goto
mehr geschrieben. Bin nichtmal wirklich in Versuchung gekommen. OK, vielleicht ein paar wenige Stellen wo ich aus ner verschachtelten Schleife raus wollte, aber die liessen sich alle leicht aufreturn
umstellen, ohne dadurch unübersichtlicher zu werden.
-
Ist wohl mal wieder eine sehr emotional geprägte Fragestellung! Die ersten BASIC-Interpreter kannten als Kontrollstruktur nur goto. In FORTRAN war continue absolutes Muss. Die WinApi-Programmierung mit C erfordert den Einsatz von break bei switch.
Sei beruhigt trotz anderer Meinungen. Selbst das zurecht verpönte goto kann noch seine Berechtigung haben. Ich selbst steige aus komplizierten Iterationen auch schon einmal mit goto ans Funktionsende aus, weil es übersichtlich ist. Funktionen sind bei mir meist klar definierte Blöcke mit Eingabe-Verarbeitung-Ausgabe (EVA).
-
berniebutt schrieb:
Die WinApi-Programmierung mit C erfordert den Einsatz von break bei switch.
Man muss auf Windows break und switch verwenden? Wie will das OS das denn überprüfen?
-
@ icarus2: Okay, ich habs beim ersten Lesen mehr überflogen. Jetzt hab ichs verstanden
@ Shade of Mine: Nicht generell. Aber ich stelle mich absichtlich gegen Regeln, die besagen, dass Funktionen nur so und so lang sein dürfen. Für mich hört eine Funktion dann auf, wenn es Sinn macht
Danke für all die Antworten
-
berniebutt schrieb:
Funktionen sind bei mir meist klar definierte Blöcke mit Eingabe-Verarbeitung-Ausgabe (EVA).
Haha. Auch ein Paradigma, das vor 20 Jahren schon 20 Jahre alt war.
Eine Stilsünde zieht die andere nach sich.
-
volkard schrieb:
berniebutt schrieb:
Funktionen sind bei mir meist klar definierte Blöcke mit Eingabe-Verarbeitung-Ausgabe (EVA).
Haha. Auch ein Paradigma, das vor 20 Jahren schon 20 Jahre alt war.
Eine Stilsünde zieht die andere nach sich.Gibts Funktionen ohne EVA? Was machen die? Wobei ich A jetzt als return oder Hardwareausgabe sehe.
-
AdamsFrau schrieb:
Gibts Funktionen ohne EVA? Was machen die? Wobei ich A jetzt als return oder Hardwareausgabe sehe.
Das ist wie die Flucht-Interpretation, daß Gott überall sei, weil die Astronauten ihn im Himmel nicht gesehen haben.
Nee, EVA war auf Code-Ebene gemeint und trueb schreckliche Blüten:int main(){ //zuerst alle benutzereingaben lesen, alle! kein interaktiver dialogbetrieb. //keine bedarfsgerechten nachfragen. //dann die daten verarbeiten //dann ausgeben }
bool f(char* filename,int size,somnizer** smz){ //zuerst die eingabe, also datei auslesen und in ein array stopfigen!, //und den somnizer auslesen //dann erst die verarbeitung, also vorwiegend nur die daten fluxieren, //gegebenenfalls auf die konfigurationsdaten des auf verdacht ausgelesenenen //somnizers zugreifen //dann die ausgabe, eventuell aufgetauchte fehler berichten und den //somnizer rekalibrieren }
-
wo kann man somnizer kaufen?
-
AdamsFrau schrieb:
wo kann man somnizer kaufen?
Es werden schon lange keine mehr hergestellt.
-
volkard schrieb:
AdamsFrau schrieb:
wo kann man somnizer kaufen?
Es werden schon lange keine mehr hergestellt.
Schade! Ich habe auf dem Dachboden ein mir unbekanntes Gerät mit serieller Schnittstelle gefunden, das ein solcher somnizer sein könnte. Mangels Manual habe ich diesen vermeintlichen somnizer mit 'goto muell' entsorgt.
Eva hatte den Apfel genommen. Das war ein Stilbruch. Sie hätte besser die Schlange genommen!