Με έναν βρόχο while, μπορείς να εκτελέσεις κώδικα επανειλημμένα, όσο ικανοποιείται μια συγκεκριμένη συνθήκη.
Γράφεται με τη λέξη-κλειδί while, ακολουθούμενη από μια συνθήκη μέσα σε παρενθέσεις και ένα μπλοκ κώδικα που περιέχει το σώμα του βρόχου μέσα σε άγκιστρα.
while (condition) {
// code that is executed repeatedly as long as the condition is
// true
}
Η JavaScript έχει επίσης τον βρόχο do-while. Εδώ η συνθήκη ελέγχεται αφού εκτελεστεί το σώμα του βρόχου. Αυτό είναι χρήσιμο όταν η συνθήκη εξαρτάται από υπολογισμούς που γίνονται στο σώμα.
do {
// The code here will always be executed once and then
// repeatedly while the condition is true.
} while (condition);
Μέσα στο σώμα ενός βρόχου, μπορείς να χρησιμοποιήσεις τη λέξη-κλειδί break για να σταματήσεις εντελώς την εκτέλεση του βρόχου.
Αυτό χρησιμοποιείται συχνά σε συνδυασμό με το true ως συνθήκη.
Έτσι, μπορείς να ελέγχεις από οποιοδήποτε σημείο μέσα στο σώμα του βρόχου πότε πρέπει να σταματήσει ο βρόχος.
const winningNumber = 7;
while (true) {
const num = readUserGuess();
if (num === winningNumber) {
break;
}
}
Η λέξη-κλειδί break δεν μπορεί να χρησιμοποιηθεί μέσα σε μια συνάρτηση που είναι εμφωλευμένη στον βρόχο, δες την τεκμηρίωση του MDN για ένα παράδειγμα.
Σε αντίθεση με το break, η λέξη-κλειδί continue σταματά μόνο την εκτέλεση της τρέχουσας επανάληψης και συνεχίζει με την επόμενη.
Με το continue μπορείς συχνά να αποφύγεις να τυλίξεις μεγάλα μέρη του σώματος του βρόχου σε μια εντολή if.
let i = 0;
while (i < 100) {
i = i + 2;
if (i % 3 === 0) {
continue;
}
// The code here will only be executed when i was not divisible
// by 3 in the check above.
}
Ένας βρόχος που (θεωρητικά) επαναλαμβάνεται για πάντα δημιουργείται όταν η συνθήκη του βρόχου ικανοποιείται πάντα και δεν εκτελείται στο σώμα του βρόχου καμία εντολή break ή return. Η εκτέλεση πρέπει να τερματιστεί από έξω. Ανάλογα με το περιβάλλον στο οποίο εκτελείται ένας τέτοιος κώδικας, αυτό μπορεί να γίνει αυτόματα ή να απαιτεί χειροκίνητη παρέμβαση.
let i = 0;
while (i < 100) {
if (i % 3 === 0) {
continue;
}
i = i + 2;
}
// This loop runs forever since the variable i does not change
// anymore after it is divisible by 3 the first time.
Ο εντοπισμός άπειρων βρόχων μπορεί να φαίνεται ασήμαντος σε αυτό το απλό παράδειγμα, αλλά δεν είναι πάντα τόσο εύκολος με πιο σύνθετο κώδικα. Είναι καλή πρακτική να σκέφτεσαι προσεκτικά αν η συνθήκη σου θα γίνει τελικά ψευδής ή αν θα εκτελεστεί η εντολή break ή return.