Τι είναι η φωλιά;

φωλιά Εμφανίζεται όταν μια δομή βρόχου περικλείεται μέσα σε μια άλλη. Τόσο ο εξωτερικός βρόχος όσο και ο εσωτερικός βρόχος μπορούν να ελεγχθούν χρησιμοποιώντας είτε ένα οριστικό ή ένα αόριστο Κατάσταση βρόχου.

- Φωλιά των ορισμένων βρόχων:

Εάν και οι δύο βρόχοι είναι ορισμένοι βρόχοι, ισχύουν οι ακόλουθες οδηγίες:

-Ο εξωτερικός βρόχος πρέπει να ελέγχεται χρησιμοποιώντας μια καθορισμένη συνθήκη βρόχου και ο εσωτερικός βρόχος πρέπει επίσης να ελέγχεται χρησιμοποιώντας μια καθορισμένη συνθήκη βρόχου.

- Ο εσωτερικός βρόχος θα επαναλάβει το πλήρες σύνολο επαναλήψεών του για κάθε επανάληψη του εξωτερικού βρόχου και ο εξωτερικός βρόχος θα επαναλάβει ολόκληρο το σύνολο των επαναλήψεων καθώς ο εσωτερικός βρόχος ολοκληρώνει κάθε ένα από τα σύνολα επανάληψης.

- Φωλιά αόριστων βρόχων:

Εάν και οι δύο βρόχοι είναι αόριστοι βρόχοι, ισχύουν οι ακόλουθες οδηγίες:

- Κάθε βρόχος πρέπει να ελέγχεται χρησιμοποιώντας μια αόριστη κατάσταση-ηχίδα βρόχου.

- Είτε βρόχος μπορεί ενδεχομένως να εκτελέσει επ 'αόριστον.

- Εάν ένας από τους βρόχους εκτελεστεί επ 'αόριστον και ο άλλος δεν το κάνει, η διαδικασία βρόχου δεν θα τελειώσει ποτέ.

- Φωλιά ενός σαφούς και αόριστου βρόχου:

Εάν ένας από τους βρόχους είναι ένας ορισμένος βρόχος και ο άλλος είναι ένας αόριστος βρόχος, χρησιμοποιούνται οι κατευθυντήριες γραμμές που ισχύουν για αόριστες βρόχους.

Ακολουθεί ένα παράδειγμα ένθετων βρόχων `for` in javascript για να βρείτε τους πρωταρχικούς παράγοντες ενός δεδομένου αριθμού:

`` `javascript

Λειτουργία FindPrimeFactors (αριθμός) {

// αρχικοποιήστε έναν κενό πίνακα για να αποθηκεύσετε πρωταρχικούς παράγοντες

Let PrimeFactors =[];

// Επεξεργαστείτε μέσω όλων των αριθμών από 2 έως την τετραγωνική ρίζα του αριθμού εισόδου

για (ας i =2; i <=math.sqrt (αριθμός); i ++) {

// Εάν ο αριθμός εισόδου διαιρείται από τον τρέχοντα αριθμό χωρίς υπόλοιπο

ενώ (αριθμός % i ==0) {

// Προσθέστε τον τρέχοντα αριθμό στη λίστα των πρωταρχικών παραγόντων

primeFactors.push (i);

// Διαχωρίστε τον αριθμό εισόδου με τον τρέχοντα αριθμό

αριθμός /=i;

}

}

// Εάν ο αριθμός εισόδου είναι μεγαλύτερος από 1, είναι ένας πρωταρχικός αριθμός, οπότε προσθέστε τον στη λίστα

αν (αριθμός> 1) primeFactors.push (αριθμός);

// Επιστρέψτε τη λίστα των πρωταρχικών παραγόντων

επιστροφή primefactors?

}

`` `

Στο παραπάνω παράδειγμα, το εξωτερικό βρόχο `for` επαναλαμβάνεται μέσω όλων των αριθμών από 2 έως την τετραγωνική ρίζα του αριθμού εισόδου. Για κάθε τιμή του `i ', ο εσωτερικός` ενώ ο βρόχος ελέγχει αν ο αριθμός εισόδου διαιρείται από το `i'. Αν είναι, ο εσωτερικός βρόχος συνεχίζει να διαιρεί τον αριθμό από το `` μέχρι να μην διαιρείται πλέον, προσθέτοντας κάθε `i 'στον πίνακα` primefactors'. Μόλις ολοκληρωθεί ο εσωτερικός βρόχος, ο εξωτερικός βρόχος μετακινείται στην επόμενη τιμή του «I». Η διαδικασία συνεχίζεται έως ότου ο αριθμός εισόδου δεν διαιρείται πλέον από οποιονδήποτε αριθμό διαφορετικών από τον εαυτό του. Σε αυτό το σημείο, ο αριθμός εισόδου είναι πρωταρχικός και προστίθεται στον πίνακα `primefactors '. Τέλος, η συνάρτηση επιστρέφει τη συστοιχία «primefactors».

Οι βρόχοι φωλιάσματος μπορούν να χρησιμοποιηθούν για την επίλυση διαφόρων προβλημάτων που απαιτούν την επεξεργασία σε πολλαπλές ακολουθίες ή δομές δεδομένων. Σας επιτρέπουν να δημιουργείτε πολύπλοκες δομές ελέγχου και να εκτελείτε διαφορετικές λειτουργίες με βάση συνδυασμούς συνθηκών.