Die Zahl der Fragen dürfte endlich sein, auch darum emfehlen wir hier das gute alte for(;;)-Konstrukt.
Natürlich ist sie endlich. Eigentlich ist es ja nur eine Frage. Sie wird einfach solange wiederholt, bis eine korrekte Antwort angegeben wurde.
Dann ist while genau richtig. Denn while ist für Anweisungssequenzen bei denen vorab nicht klar ist, wie oft der Code ausgeführt werden soll bzw. wann die Abbruchbedingung erfüllt ist.