Huisdier thuis
nestelen treedt op wanneer de ene lusstructuur in de andere is ingesloten. Zowel de buitenste lus als de binnenste lus kunnen worden geregeld met een definitieve of een onbepaalde Loop-continuatie toestand.
- Nesting van definitieve lussen:
Als beide lussen duidelijke lussen zijn, zijn de volgende richtlijnen van toepassing:
-De buitenste lus moet worden geregeld met behulp van een duidelijke lusconcontinuatieconditie en de binnenste lus moet ook worden geregeld met behulp van een definitieve lusconcontinuatieconditie.
- De binnenste lus zal zijn volledige set iteraties herhalen voor elke iteratie van de buitenste lus, en de buitenste lus zal zijn hele set iteraties herhalen terwijl de binnenste lus elk van zijn iteratie -sets voltooit.
- Nesting van onbepaalde lussen:
Als beide lussen onbepaalde lussen zijn, zijn de volgende richtlijnen van toepassing:
- Elke lus moet worden geregeld met behulp van een onbepaalde lusconfiguatieconditie.
- Beide loop kan mogelijk voor onbepaalde tijd uitvoeren.
- Als een van de lussen voor onbepaalde tijd wordt uitgevoerd en de andere niet, zal het loopproces nooit eindigen.
- Nesting van een definitieve en een onbepaalde lus:
Als een van de lussen een duidelijke lus is en de andere een onbepaalde lus is, worden de richtlijnen die van toepassing zijn op onbepaalde lussen gebruikt.
Hier is een voorbeeld van geneste `for` lussen in JavaScript om de belangrijkste factoren van een bepaald getal te vinden:
`` `JavaScript
functie FindPrimeFactors (nummer) {
// Initialiseer een lege array om prime -factoren op te slaan
Laat Pritefactors =[];
// herhaal door alle getallen van 2 tot de vierkantswortel van het invoernummer
voor (laat i =2; i <=Math.Sqrt (nummer); i ++) {
// Als het invoernummer zonder rest deelbaar is door het huidige nummer
terwijl (nummer % i ==0) {
// Voeg het huidige nummer toe aan de lijst met topfactoren
primactors.push (i);
// Deel het invoernummer door het huidige nummer
nummer /=i;
}
}
// Als het invoernummer groter is dan 1, is dit een priemgetal, dus voeg het toe aan de lijst
if (nummer> 1) prefactors.push (nummer);
// Retourneer de lijst met topfactoren
retourneer primactoren;
}
`` `
In het bovenstaande voorbeeld herhaalt de buitenste `for` lus door alle getallen van 2 tot de vierkantswortel van het invoernummer. Voor elke waarde van `I`, controleert de innerlijke 'terwijl' lus controleert of het invoernummer deelbaar is door 'ik'. Als dat zo is, blijft de binnenste lus het nummer delen door `ik 'totdat het niet langer deelbaar is, waarbij elke` ik' aan de 'primactors' -array wordt toegevoegd. Zodra de binnenste lus is voltooid, gaat de buitenste lus naar de volgende waarde van `ik '. Het proces gaat door totdat het invoernummer niet langer deelbaar is door andere getallen dan zichzelf. Op dat moment is het invoernummer prime en wordt het toegevoegd aan de array `Primactors. Ten slotte retourneert de functie de array van de `primeFactors.
Nestlussen kunnen worden gebruikt om verschillende problemen op te lossen die moeten worden hersteld over meerdere sequenties of gegevensstructuren. Hiermee kunt u complexe besturingsstructuren maken en verschillende bewerkingen uitvoeren op basis van combinaties van voorwaarden.