Traumhaft diese Diskussion
Ich ueberlege mal, was ich bis jetzt verwendet habe:
break: ja.
continue: ja.
goto: ja.
exit: ja.
Ich wuerde sagen, jeder Befehl hat seine Daseinsberechtigung. Ich halte mich auch von gotos fern, soweit es geht, und genauso gehts mir mit breaks und exits.
Wenn ich die Wahl habe, eine for-Schleife und ein break, oder eben eine While-Schleife mit 2 Abbruchbedingungen zu verwenden, dann nehme ich oft eine while-Schleife, ganz einfach weil man dadurch sofort sieht, warum abgebrochen wird. Wenn ich aber im Fehlerfall eine Fehlermeldung ausgeben will, dann wird ganz einfach ein break oder ein exit nach der Fehlermeldung platziert.
Und bezueglich continue, ich frage mich wo da der grossartige Unterschied sein soll:
Delphi-Quellcode:
for i := 1 to Length(s) do
begin
if (s[i] <> 'f') then
DoSomething(s[i]);
end;
Delphi-Quellcode:
for i := 1 Length(s) do
begin
if (s[i] = 'f') then
continue;
DoSomething(s[i]);
end;
Vor allem wenn anstatt DoSomething() mehrere Anweisungen kommen, versuche ich durch die Verwendung von continue eine Einrueckungsstufe zu sparen. Manchmal gehts einfach nicht anders und Code wird ein paar viele Stufen eingerueckt; wenn man sich da eine davon sparen kann, und dafuer ein continue verwendet, geht die Welt bestimmt nicht unter. Ausserdem ist die continue-Schreibweise nur unwesentlich oder sogar ueberhaupt nicht schwerer lesbar als die erste Variante.
Just my $.02
Greetz
alcaeus
PS@ Unwissender: Vorsicht, Struktogramme haben heute noch eine grosse Wichtigkeit, und
UML-Diagramme haben mit Struktogrammen nicht wirklich viel zu tun, also wuerde ich die beiden auch nicht so vergleichen wie du es getan hast. Und was die Ziele der Softwaretechnik betrifft, so schiesst die selbst manchmal am Ziel vorbei; die Vorlesung gehoert zu den schwachsinnigsten und unrealistischsten (wat weiss ich wie das geschrieben wird
) die ich in den bisherigen 2 Studien-Semestern hoeren musste