Für das Durchlaufen eines Arrays war die for-Schleife im letzten Abschnitt perfekt geeignet, da ihre Zählerfunktion durch die bekannte Länge des Arrays gut eingesetzt werden konnte. Es gibt aber auch Fälle, in denen uns noch nicht im Voraus klar ist, wie lange die Schleife sich wiederholen soll. Dann ist die Verwendung der while-Schleife häufig eleganter.
Bei der while-Schleife wird abgesehen vom auszuführenden Codeblock (wieder zwischen geschweiften Klammern) nur eine Bedingung angegeben (wieder zwischen runden Klammern).
while ( BEDINGUNG ) {
BEFEHLE
}
Solange (engl. while) diese Bedingung erfüllt ist, wird der Codeblock immer wieder ausgeführt. Die Bedingung wird nach jedem Durchlauf des Codeblocks überprüft. Eine Möglichkeit, die Schleife zu beenden, ist also das "Falschmachen" der Bedingung. Eine weitere Möglichkeit zum Schleifenabbruch ist das JavaScript-Schlüsselwort break, das wir von der switch-Anweisung bereits kennen. Wir können z.B. innerhalb des Befehlsblocks eine if-else-Anweisung einbauen und unter gewissen Bedingungen die Schleifenwiederholung durch break beenden.
Bei while-Schleifen muss man ganz besonders aufpassen, dass man nicht aus Versehen eine Endlosschleife produziert. Browser haben zwar normalerweise die Funktion, ein Skript bei der Ausführung zu stoppen, wenn es zu viel Zeit in Anspruch nimmt, Endlosschleifen können aber trotzdem sehr unangenehm für den Benutzer werden (z.B. wenn der Browser abstürzt oder nur noch sehr langsam reagiert).
Aufgabe
Erstelle ein JavaScript-Programm, das dem Benutzer ermöglicht, eine Liste von Zahlen zu addieren. Es soll den Benutzer dabei so oft nach einer Zahleneingabe fragen, bis dieser keine weiteren Zahlen eingeben möchte. Dann soll ihm die Summer aller von ihm eingegebenen Zahlen als Antwort präsentiert werden.