# >> Animal de estimação > >> Aves >> Relativo à Birds
ninho ocorre quando uma estrutura de loop é fechada dentro de outra. Tanto o loop externo quanto o loop interno podem ser controlados usando um definitivo ou um indefinido Condição de continuação de loop.
- Ninho de loops definidos:
Se ambos os loops forem loops definidos, as seguintes diretrizes se aplicam:
-O loop externo deve ser controlado usando uma condição definitiva de continuação de loop, e o loop interno também deve ser controlado usando uma condição de continuação de loop definitiva.
- O loop interno iterará seu conjunto completo de iterações para cada iteração do loop externo, e o loop externo iterará todo o seu conjunto de iterações à medida que o loop interno completa cada um de seus conjuntos de iteração.
- ninho de loops indefinidos:
Se ambos os loops forem loops indefinidos, as seguintes diretrizes se aplicam:
- Cada loop deve ser controlado usando uma condição de continuação de loop indefinida.
- qualquer loop pode potencialmente executar indefinidamente.
- Se um dos loops executar indefinidamente e o outro não, o processo de loop nunca terminará.
- ninho de um loop definido e indefinido:
Se um dos loops for um loop definido e o outro é um loop indefinido, as diretrizes que se aplicam aos loops indefinidos são usados.
Aqui está um exemplo de loops `para` aninhados em JavaScript para encontrar os principais fatores de um determinado número:
`` `JavaScript
função findPrimefactors (número) {
// Inicialize uma matriz vazia para armazenar fatores primos
Seja PrimeFactors =[];
// iterar em todos os números de 2 para a raiz quadrada do número de entrada
para (vamos i =2; i <=math.sqrt (número); i ++) {
// Se o número de entrada for divisível pelo número atual sem restante
enquanto (número % i ==0) {
// Adicione o número atual à lista de fatores primos
PrimeFactors.push (i);
// Divida o número de entrada pelo número atual
número /=i;
}
}
// Se o número de entrada for maior que 1, é um número primo, então adicione -o à lista
if (número> 1) PrimeFactors.push (número);
// retorna a lista de fatores primos
retornar os PrimeFactors;
}
`` `
No exemplo acima, o loop externo `for` itera através de todos os números de 2 para a raiz quadrada do número de entrada. Para cada valor de `i`, o loop interno` while 'verifica se o número de entrada é divisível por `i`. Se for, o loop interno continua dividindo o número por `i` até que não seja mais divisível, adicionando cada 'i` à matriz' Primefactors '. Depois que o loop interno é concluído, o loop externo se move para o próximo valor de `i`. O processo continua até que o número de entrada não seja mais divisível por nenhum número que não seja. Nesse ponto, o número de entrada é Prime e é adicionado à matriz 'Primefactors'. Finalmente, a função retorna a matriz 'Primefactors'.
Os loops de nidificação podem ser usados para resolver vários problemas que exigem iteragem por várias sequências ou estruturas de dados. Eles permitem que você crie estruturas de controle complexas e realize operações diferentes com base em combinações de condições.