Einzelnen Beitrag anzeigen
Ungelesen 13.09.09, 09:57   #4
Jesus Christus
Banned
 
Registriert seit: Aug 2009
Ort: Nazareth, Israel
Beiträge: 186
Bedankt: 2
Jesus Christus ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von urga Beitrag anzeigen
sorry,
aber LOL hehe lösung deines problems kommt gleich.

in der ersten while (oder do while) wartest du bis jemand was eingibt was < 7 ist.
d.h die while wird _niemals_ verlassen, falls jemand >= 7 eingibt.

falls < 7 eingegeben wurde bist du in der 2.ten while.
die wird erst verlassen, falls irgendwas > 7 eingegeben wird.

dann ist zahl > 7
und die finale if-bedingung wird nicht erfüllt.

d.h. der algorithmus ist falsch.
Richtig, das Problem warum auch bei falschen Zahlen das richtig erscheint ist das ; am Ende der Zeile. Damit beendest du den den "Befehlsblock" der bei if=true ausgeführt wird. Alles was darauf folgt wird trotz der {} immer ausgeführt.

@Underkane: Bei deinem zweiten Beispiel ist das Problem, das die do-while-Schleife immer ausgeführt wird und am Ende nur geprüft wird, ob die Schleife ein zweites Mal durchgeführt ist.


@urga: Ganz klar, für diese Erklärung muss man 5 Posts machen, man kann das nicht alles direkt in einem Post schreiben oder nachträglich reineditieren
Jesus Christus ist offline   Mit Zitat antworten