Loop definido vs loop indefinido
Um loop é um bloco de código que se repetiria por um número especificado de vezes ou até que alguma condição fosse atendida. Um loop definido é um loop no qual o número de vezes que ele será executado é conhecido antecipadamente antes de entrar no loop. Em um loop indefinido, o número de vezes que ele será executado não é conhecido antecipadamente e será executado até que alguma condição seja satisfeita.
O que é um loop definido?
Um loop definido é um loop no qual o número de vezes que ele será executado é conhecido antecipadamente antes de entrar no loop. O número de iterações que ele repetirá será normalmente fornecido por meio de uma variável inteira. Em geral, os loops são considerados loops definidos. A seguir, é apresentado um exemplo de um loop definido implementado usando um loop for (na linguagem de programação Java).
para (int i = 0; i < num; i++)
// corpo do loop for
O loop acima executará seu corpo várias vezes, fornecido pela variável num. Isso pode ser determinado a partir do valor inicial da variável ie da condição do loop.
Enquanto loops também podem ser usados para implementar loops definidos, como mostrado abaixo (em Java).
int i = 0;
enquanto eu
// corpo do loop
i ++;
Mesmo que isso use um loop while, também é um loop definido, pois é sabido antecipadamente que o loop executará o número de vezes fornecido pela variável num.
O que é um loop indefinido?
Em um loop indefinido, o número de vezes que ele será executado não é conhecido antecipadamente. Normalmente, um loop indefinido será executado até que alguma condição seja satisfeita. Loops while e do-while são comumente usados para implementar loops indefinidos. Mesmo que não haja motivo específico para não usar loops para a construção de loops indefinidos, loops indefinidos podem ser organizados ordenadamente usando loops while. Alguns exemplos comuns que você precisaria implementar loops indefinidos estão solicitando a leitura de uma entrada até o usuário inserir um número inteiro positivo, a leitura de uma senha até o usuário inserir a mesma senha duas vezes seguidas, etc..
Qual é a diferença entre o loop definido e o loop indefinido?
Um loop definido é um loop no qual o número de vezes que ele será executado é conhecido com antecedência antes de entrar no loop, enquanto um loop indefinido é executado até que alguma condição seja satisfeita e o número de vezes que ele será executado não é conhecido antecipadamente. Freqüentemente, loops definidos são implementados usando para loops e loops indefinidos são implementados usando loops while e do-while. Mas não há razão teórica para não usar loops para loops indefinidos e loops para loops definidos. Mas loops indefinidos podem ser organizados ordenadamente com loops while, enquanto loops definidos podem ser organizados ordenadamente com loops for.