Seite 1 von 1

Fehler in Lösung Übung 3

Verfasst: 7. Jun 2012 11:20
von Napfton
Hi

folgender Fehler befindet sich in der Lösung zu Übung 3 Aufgabe 1 a):

In Zeile 220 das break; bricht nicht das if sondern die Schleife, damit muss es eine Kante von 220 zu 222 geben, nicht zu 221 und dann wieder hoch an den Schleifenkopf inkl. weiterer Auswertung, siehe:

http://docs.oracle.com/javase/tutorial/ ... ranch.html

"The break statement, shown in boldface, terminates the for loop when that value is found. Control flow then transfers to the statement after the for loop"

Gruß

Re: Fehler in Lösung Übung 3

Verfasst: 8. Jun 2012 15:22
von lauder
Hi,

danke für den Hinweis! In der Tat ist uns da ein Tippfehler passiert: statt "break" hätte da "continue" stehen sollen. Wir haben das auf dem Blatt und in den Lösungshinweisen korrigiert. Durch ein "continue" wird mit dem nächsten Schleifendurchlauf fortgefahren und somit Knoten 221 angesteuert. Der Kontrollflussgraph bleibt also unverändert.

Viele Grüße
Marius

Re: Fehler in Lösung Übung 3

Verfasst: 11. Jun 2012 13:21
von Napfton
Hi,

warum würde ein continue; dann aber nicht direkt in den Schleifenkopf springen also zu 205' sondern spring ans Ende der if-Schleife um die Variablen zu "undefinen"?

Danke und Gruß!

Re: Fehler in Lösung Übung 3

Verfasst: 11. Jun 2012 13:55
von lauder
In unserem Denkmodell überspringt man mit einem continue alle Anweisungen nach dem continue und schließt somit den Schleifendurchlauf korrekt ab, bevor man in die nächste Runde eintritt. Alternativ könnte man sich auch einen Knoten 205'' vorstellen, der nur vom Break aus erreichbar ist und neben den definierenden und lesenden auch noch undefinierenden Eigenschaften bzgl. Variablen hat.

Viele Grüße
Marius