017
23.12.2004, 10:40 Uhr
virtual
Sexiest Bit alive (Operator)
|
Zitat von (un)wissender: |
Goto ist hier perfekt. Selbst Java hast das mit gelabelten break und continue realisiert.
|
Naja, also nur weil Java da ein Statement fehlt namens
Wobei <level> angibt, über wie viele Schleifen gebreakt werden soll, ist die goto keine gute Lösung, eine perfekte schon garnicht.
In C++ verbietet sich goto sowieso in recht vielen fällen, bei folgendem Code :
C++: |
for(int i=0; i<100; ++i) { std::string str var; if (i==10) goto ende; }
... ende:
|
ist zB die Frage gerechtfertigt, ob hier nicht ein fettes Speicherloch entsteht (kann noch nicht mal sagen, ob das der Compiler überhaupt zuläßt, habe es nicht ausprobiert).
Im sinne eine Strukturierten Programmierung verbietet sich goto ohnehin komplett. Im Sinne einer überschaubaren, adäquaten Problemlösung ist meiner Meinung nach die Routine, die aus geschachtelten Schleifen besteht, in zwei Funktionen zu unterteilen: die eine funktion beinhaltet die innere schleife und signalisiert über den Rückgabewert, ob die äußere Schleife gebreakt werden soll. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |