Cursos / Jogos Digitais / Programação Estruturada / Aula

arrow_back Aula 05 - Comandos de iteração

3. O Laço while

O próximo comando de iteração que você irá aprender é o laço while, que tem a seguinte forma:

Assim como o comando for, o comando while é utilizado para repetir a execução de um bloco de comandos. Eles podem ser utilizados no lugar do comando for, como mostrado no exemplo a seguir:

O ProgramaWhile é utilizado para imprimir os números de 1 a 10, exatamente como o ProgramaFor anteriormente mostrado faz. Vejamos como funciona esse comando. Primeiro, a execução do while depende de uma condição, que no caso do exemplo é i <= 10. Essa condição deve ser uma expressão boleana e seu valor é utilizado para determinar se o laço deve (valor true) ou não (valor false) ser executado. Se o valor da expressão for falso, o laço não é executado, mas sim a próxima linha de código do programa.

Apesar do while e do for poderem ser utilizados de forma alternativa, cada um é mais apropriado para determinadas situações. Por exemplo, qual implementação você achou mais interessante, a do ProgramaFor (mostrado novamente abaixo) ou do ProgramaWhile?

Em geral, as pessoas preferem a implementação do ProgramaFor. Isso porque laços implementados com o comando for são interessantes quando existe uma contagem. Em geral, sabe-se quantas vezes o laço será executado. Já o while é bastante interessante quando não se sabe inicialmente quantas vezes o laço será executado. Imagine a situação onde deva-se sortear um número entre 1 e 10 e perguntar qual é esse número para o usuário até que ele acerte. Isso é feito de forma relativamente natural usando-se o comando while:

Observe no código que o sorteio é realizado na seguinte linha de código:

A instrução Math.random() retorna um valor numérico aleatório de precisão decimal (double) entre 0 e 1. Quando multiplicamos por 10, esse valor passa a ser entre 0 e 10. Esse novo valor é então passado para a função Math.round(), a qual arredonda para o número inteiro mais próximo.

Em seguida, é solicitado ao usuário que digite um número entre 1 e 10, usando-se o leitor (Scanner) já discutido anteriormente. O laço então compara o valor lido do usuário com o valor sorteado. Enquanto esses valores não forem iguais (numero != chute), o laço será executado solicitando novamente um novo número. Quando o usuário acertar, o laço irá terminar e a mensagem “Você acertou!” será impressa na tela.

Se você tentar implementar esse programa usando um laço for, o seu uso não será nada natural.

Versão 5.3 - Todos os Direitos reservados