Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

2
respostas

[Dúvida] Duvida sobre for, while e do..while

Olá, bom dia,
Eu ainda estou com duvida em algumas vezes sobre a utilização do for, while e do...while. As vezes eu tenho uma dificuldade de saber quando usar cada uma. Poderia me auxiliar me dando alguma dica que possa facilitar a escolha e entender melhor??

2 respostas

Olá Stephanie. Espero que esteja bem!

Essa dúvida é muito comum no começo, mas com a prática você vai saber diferenciar corretamente.

O for é usado quando sabemos quantas vezes o código vai ser repetido. Digamos que vamos percorrer uma lista. O código precisa repetir quantas vezes for o tamanho dessa lista seja 10 ou 50 vezes. Agora digamos que numa tela de login vamos permitir que o usuário tente a senha apenas 3 vezes. Sabemos que esse código precisa repetir no máximo 3 vezes.

Contudo, se vamos permitir que o usuário possa tentar infinitamente até acertar, é melhor usar o while pois ele pode acertar de primeira ou na oitava tentativa. Como não sabemos quantas vezes o código precisa repetir, o while é a melhor escolha. Ele repete até uma condição acontecer. Nesse caso até a senha estar correta. Em qualquer caso assim, prefira o while.

Mas há casos em que o código precisa aparecer pelo menos uma vez. Aí entra o do...while. A diferença aqui é que ele testa a condição no final. Ele é menos utilizado mas tem sua função. Às vezes você pode criar um menu que precisa aparecer ao menos uma vez antes de testar se o usuário vai clicar em sair, ou em outra opção do menu. Nesse caso mesmo que a primeira opção do usuário seja sair, o menu precisa ser mostrado pelo menos uma vez. Em casos assim, é legal utilizar o do...while.

Espero ter ajudado. Grande abraço!!

Olá Stephanie.
Essa é uma dúvida muito comum quando estamos aprendendo estruturas de repetição.
A boa notícia é que, com a prática, a escolha entre for, while e do...while fica cada vez mais natural.
Uma dica que costuma ajudar bastante é pensar na pergunta: "Eu sei quantas vezes o laço vai executar?"
Se a resposta for sim, geralmente o for é a melhor opção. Ele é muito utilizado quando existe um contador definido, por exemplo, repetir algo 10 vezes ou percorrer os elementos de uma lista.
Já o while é mais indicado quando você não sabe exatamente quantas repetições serão necessárias. O laço continua executando enquanto uma condição for verdadeira. Um exemplo clássico é uma validação de login, em que o sistema continua pedindo usuário e senha até que os dados estejam corretos.
O do...while é parecido com o while, mas possui uma diferença importante: ele executa o bloco pelo menos uma vez antes de verificar a condição. É útil quando você precisa garantir que determinada ação aconteça ao menos uma vez, como exibir um menu para o usuário e depois verificar se ele deseja continuar.
Uma forma simples de memorizar é:

  • for: quantidade de repetições conhecida.
  • while: quantidade de repetições desconhecida.
  • do...while: precisa executar pelo menos uma vez.

No exercício de validação de login, por exemplo, o while ou o do...while costumam fazer bastante sentido, porque não sabemos quantas tentativas o usuário precisará fazer até acertar os dados.
Minha sugestão é que, ao resolver os próximos exercícios, tente primeiro identificar se existe uma quantidade fixa de repetições ou não. Apenas essa análise já ajuda muito na escolha da estrutura adequada.
Você está no caminho certo ao questionar essas diferenças, pois compreender quando usar cada laço é mais importante do que apenas decorar a sintaxe.
E no decorrer do aprendizado vai aprender novas formas de lidar com repetições.
Avise qualquer dúvida.
Bons estudos.