Βρόχοι JavaScript: Δήλωση ετικέτας, δήλωση συνέχισης και δήλωση διακοπής

Δήλωση ετικέτας

Η δήλωση Label χρησιμοποιείται με τις breakκαι continueτις δηλώσεις και χρησιμεύει για την αναγνώριση του δήλωση με την οποία τα breakκαι continueισχύει δηλώσεις.

Θα μιλήσουμε περισσότερα για τα παρακάτω breakκαι τις continueδηλώσεις.

Σύνταξη

labelname: statements

Χρήση

Χωρίς τη χρήση μιας labeledδήλωσης, η breakδήλωση μπορεί να ξεσπάσει μόνο από έναν βρόχο ή μια switchδήλωση. Η χρήση μιας labeledδήλωσης επιτρέπει breakτην έξοδο από οποιοδήποτε μπλοκ κώδικα.

Παράδειγμα

foo: { console.log("This prints:"); break foo; console.log("This will never print."); } console.log("Because execution jumps to here!") /* output This prints: Because execution jumps to here! */

Όταν χρησιμοποιείται με μια continueδήλωση, η labeledδήλωση σάς επιτρέπει να παραλείψετε μια επανάληψη βρόχου, το πλεονέκτημα προέρχεται από το να μπορείτε να βγείτε από έναν εσωτερικό βρόχο σε έναν εξωτερικό όταν έχετε δηλώσεις ένθετου βρόχου. Χωρίς τη χρήση μιας labeledδήλωσης θα μπορούσατε μόνο να βγείτε από την υπάρχουσα επανάληψη βρόχου στοnext iteration of the same loop.

Παράδειγμα

// without labeled statement, when j==i inner loop jumps to next iteration function test() { for (var i = 0; i < 3; i++) { console.log("i=" + i); for (var j = 0; j < 3; j++) { if (j === i) { continue; } console.log("j=" + j); } } } /* output i=0 (note j=0 is missing) j=1 j=2 i=1 j=0 (note j=1 is missing) j=2 i=2 j=0 j=1 (note j=2 is missing) */ // using a labeled statement we can jump to the outer (i) loop instead function test() { outer: for (var i = 0; i < 3; i++) { console.log("i=" + i); for (var j = 0; j < 3; j++) { if (j === i) { continue outer; } console.log("j=" + j); } } } /* i=0 (j only logged when less than i) i=1 j=0 i=2 j=0 j=1 */

Διακοπή δήλωσης

Το διάλειμμα δήλωση τερματίζει την τρέχουσα βρόχο, switchή labelδήλωση και μεταφέρει τον έλεγχο του προγράμματος στην κατάσταση που ακολουθεί την τερματίζεται δήλωση.

break;

Εάν η δήλωση διακοπής χρησιμοποιείται σε μια δήλωση με ετικέτα, η σύνταξη έχει ως εξής:

break labelName;

Παραδείγματα

Η ακόλουθη συνάρτηση έχει μια δήλωση διακοπής που τερματίζει το whileβρόχο όταν είμαι 3 και, στη συνέχεια, επιστρέφει την τιμή 3 * x .

function testBreak(x) { var i = 0; while (i < 6) { if (i == 3) { break; } i += 1; } return i * x; }
:ρουκέτα:

Εκτέλεση κώδικα

Στο ακόλουθο παράδειγμα, ο μετρητής έχει ρυθμιστεί να μετρά από 1 έως 99. Ωστόσο, το διάλειμμα δήλωση τερματίζει το βρόχο μετά από 14 μετρήσεις.

for (var i = 1; i < 100; i++) { if (i == 15) { break; } }
:ρουκέτα:

Εκτέλεση κώδικα

Συνέχεια δήλωσης

Η δήλωση συνέχισης τερματίζει την εκτέλεση των δηλώσεων στην τρέχουσα επανάληψη του τρέχοντος ή επισημασμένου βρόχου και συνεχίζει την εκτέλεση του βρόχου με την επόμενη επανάληψη

continue;

Εάν η δήλωση συνέχισης χρησιμοποιείται σε μια δήλωση με ετικέτα, η σύνταξη έχει ως εξής:

continue labelName;

Σε αντίθεση με τη δήλωση διακοπής , η συνέχιση δεν τερματίζει εντελώς την εκτέλεση του βρόχου. αντι αυτου:

  • Σε έναν whileβρόχο, επιστρέφει στην κατάσταση.
  • Σε έναν forβρόχο, μεταβαίνει στην έκφραση ενημέρωσης.

Παραδείγματα

Το ακόλουθο παράδειγμα δείχνει έναν whileβρόχο που έχει μια συνεχή δήλωση που εκτελείται όταν η τιμή του i είναι 3. Έτσι, το n παίρνει τις τιμές 1, 3, 7 και 12.

var i = 0; var n = 0; while (i < 5) { i++; if (i === 3) { continue; } n += i; console.log (n); }
:ρουκέτα:

Εκτέλεση κώδικα

Στο ακόλουθο παράδειγμα, ένας βρόχος επαναλαμβάνεται από 1 έως 9. Οι δηλώσεις μεταξύ συνέχισης και τέλους του forσώματος παραλείπονται λόγω της χρήσης της δήλωσης συνέχισης μαζί με την έκφραση (i < 5).

for (var i = 1; i < 10; i++) { if (i < 5) { continue; } console.log (i); }
:ρουκέτα:

Εκτέλεση κώδικα