Pensamento Computacional - Comandos de repetição no Java: while()

De MediaWiki do Campus São José
Revisão de 16h26min de 22 de setembro de 2023 por Eraldo (discussão | contribs)
Ir para navegação Ir para pesquisar

Objetivos da Aula

Após esta aula o aluno deverá:*conhecer a sintaxe e a semântica do comandos de repetição while();*mapear estruturas simples de repetição especificadas em fluxogramas ou pseudo-código em estruturas em linguagem C.

Comando while()

A sintaxe do comando while() é:

while ( expressao ) 
    instrução

onde a a instrução pode ser:

    instrução simples terminada em ';'
ou
    bloco de instruções com chaves

O comando while permite implementar loops com controle no início.

A semântica do while é a seguinte: ao entrar no comando a EXPRESSÃO entre parênteses é AVALIADA. Caso resulte em uma valor VERDADEIRO o LAÇO do loop é executado uma vez. O programa testa então novamente a expressão. LEMBRAR que:

  • VERDADEIRO é o valor true de uma expressão booleana;
  • DENTRO do laço NORMALMENTE existe uma modificação de alguma parte da expressão de teste de forma que em algum momento o LOOP se encerra.
  • Ao se encerrar o programa continua na próxima instrução APÓS o comando "while()";
  • ANTES DE entrar no comando while SEMPRE tenha certeza que as variáveis estão com valores adequados de forma que a expressão SEJA AVALIADA sempre corretamente.

No exemplo que se segue existe UMA única instrução simples (terminada em ";").

public class contador {
    public static void main(String[] args) {
        int contador;
  
        contador=0;
        while (contador<5)     
           contador=contador+1;
        System.out.println("valor do contador =  " +  contador);        
    }
}

OBSERVE a seguir uma variação do exemplo anterior usando um bloco de instruções delimitado por "{" e "}"

public class contador {
    public static void main(String[] args) {
        int contador;
  
        contador=0;
        while (contador<5)  {  
            System.out.println("valor da expressão  contador < 5 é " +  (contador<5) );
            System.out.println("valor do contador =  " +  contador);
            contador=contador+1;
        }
        System.out.println("SAIU DO LOOP: valor da expressão  contador < 5 é " +  (contador<5) );        
        System.out.println("APÓS o while o valor do contador é  " +  contador);        
    }
}
Notar que a expressão contador<5 assume valor 0 (falso) e 1 (verdadeiro).

A estrutura do comando, informalmente, é:

while (expressão)
  instrução_simples;

ou

while (expressão) {
  lista_de_instruções
} 

Vamos ver a correspondência do comando while com um fluxograma:

Fluxograma C Comentário
Fluxo5.jpg
while(contador<5) {
   printf("Entre com x\n");
   scanf("%f",&x);
   soma=soma+x;
   contador = contador + 1;
}
comando while() aplicado sobre um bloco de instruções. Note que se for uma instrução simples, as chaves podem ser omitidas.
NOTE que no exemplo anterior o contador inicialmente DEVE conter um valor válido.