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.