Bom se a sua dificuldade for em o por que e como funcionam os laços while, de forma simples(irei aprofundar logo mais), repetem uma parte de codigo, enquanto algo (chamada de condição) for avaliada como verdadeiro, caso ela se torne falsa em algum momento o código simplismente não executa, segue um exemplo em JavaScript:
const i = 0;
while (i < 5) {
i++;
console.log(i);
}
const i = 0
definimos que a variável 'i' tem o valor 0.
Em seguida iniciamos o bloco de repetição com while. Onde será mostrado o valor de 'i' a cada iteração (desculpe não encontrei uma palavra melhor), assim se você assimilar e pensar o que acontece com o valor de 'i' a cada iteração, no primeiro momento o resultado no console será 1,pois adicionamos 1 em i++
( isso é a mesma coisa que fazer i+= 1
ou aindai = i + 1
) mas depois de algumas iterações temos quei = 5
, o que faz com que a condição seja falsa, logo o código é "pulado" se quiser pensar assim.
Mas claro isso é algo muito abstrato e para ser sincero, um código desses não será usado em nenhum momento em um projeto em produção, claro isso é óbvio, so queria deixar claro. Então se quiser ler e pensar um pouco a mais por sua conta e risco, sempre digo que é bom se desafiar, mesmo sabendo pouco sobre algo, ver algo mais complexo , para mim, sempre me fez assimilar melhor o simples, por que se você viu o complexo e entendeu a ideia , logo o simples fará muito mais sentido, eu acho.
Bom então vamos ao exemplo que um colega do trabalho me mostrou, e eu indiquei que ele usasse um for, para isso mas não vem ao caso.
Para os mais experientes, isso é somente um protótipo e código abaixo não representa o uso real depois de terminada a funcionalidade
...
const IPs = [...] // lista de ips internos
let i = 0
while(IPs.length === 20 && i <= 20) {
if(IPs[i].isValid().isFormated()) {
console.log(`o IP ${IPs[i]} pode acessar o servidor);
} else {
console.log(`Verfique a API, IP:${IPs[i]} não pode ser acessar o servidor`)
}
}
i++;
}
...
Esse é somente uma parte de uma funcionalidade que eu adaptei para esse contexto, logo você percebe que não é nada de mais, somente umas verificações e mensagens no console. mas isso realmente foi usado. Claro somente para fins de teste mas isso foi usado, pois temos 20 devs com acesso ao servidor de desenvolvimento, caso o tamanho do array IPs fosse menor que 20 nada aconteceria e saberiamos que nosso restante de código tinha falhado e teriamos que rever isso, mas caso tivesse exatamente 20 IPs enquanto a variavel 'i' fosse menor que 20 temos o bloco de código rodando, caso i > 20 o código para de ser executado, e consequentemente os temos as mensagens se todos foram validos ou algum falhou na formatação ou por algum motivo não é um IPv4. é exatamente o exemplo do i < 5, só que nesse caso quando você bater o olho e ver a quantidade de código vai pensar 'pelo menos posso tentar entender'. E se entendeu parabéns, acredito que você aprendeu sobre while, mas como os outros já falaram, geralmente os while não é usado, por que geralmente sabemos a quantidade de dados que recebemos. Espero que tenha ajudado caso não desculpe ter perdido seu tempo