Zitat:
Zitat von urga
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