dedlfix: Schleifen abbrechen

Beitrag lesen

Hi!

Jedes Element, das hinzukommt, sowie jede seiner Verwendungen erhöhen die Komplexität eines Programms.
Ich kann mir nicht vorstellen, dass du auch einen Funktionsaufruf als zusätzliche Komplexität einstufst:

Doch, natürlich. Es ist Code und: Mehr Code == ... du weißt schon. Aus der Sicht des laufenden Programms ist der Funktionsaufruf und die Rückkehr immer wieder auszuführen. Das ist natürlich gegenüber direkt dastehendem Code komplexer, doch das stört uns als Programmierer wenig, denn wir müssen nur einmalig dafür sorgen, dass es läuft. Allerdings müssen wir auch darauf achten, dass es soweit abstrahiert wird, dass es einigermaßen universell verwendbar ist, was gegebenenfalls durch hinzukommende Fehlerbehandlung mehr Code benötigt.

Wenn ich z.B. irgendwo in einem Programm mal den größten gemeinsamen Teiler von 2 Zahlen brauche, dann schreibe ich dafür eine Funktion, selbst wenn ich den GGT nur ein einziges Mal im gesamten Programm ausrechnen muss. Ein Funktionsaufruf int x = ggT(y, z); ist doch nicht "komplexer", als wenn ich da eine Schleife stehen habe.

Gerade wenn du etwas nur einmal anwendest, wird es insgesamt komplexer, weil der einmalig hinzukommende Overhead sich nicht durch Mehrfachnutzung rentiert.

Noch dazu, wo nur die Auslagerung in eine eigene Methode die elegante Möglichkeit der rekursiven Berechnung ermöglicht.

Bei Rekursion hat man ja wieder eine Mehrfachnutzung.

Es ist ja nicht so, als ob ich auf Teufel komm raus die Komplexitätssteigerung vermeiden will, sie sollte nur ein aus meiner Sicht akzeptables Verhältnis zwischen Aufwand und Nutzen haben.

Lo!