Pensamento Computacional - Comandos de repetição no Java: while()
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 Java.
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 }
Exemplo 1
Elaborar um programa java para calcular a média de N alunos de uma turma. Será fornecido para cada aluno a nota final.
DADOS DE ENTRADA: Valor N (número de alunos). Um valor inteiro.
Valor da nota final para cada aluno. Um valor real.
DADOS DE SAÍDA: média calculada da turma.
import java.util.Scanner;
public class MediaTurma {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
float mediaFinal, notaAluno, soma_ac;
int numN, i;
System.out.println("Entre com a quantidade de alunos da turma");
numN = teclado.nextInt();
soma_ac = 0;
i = 0;
while( i < numN ) {
System.out.println("Entre com a nota do aluno " + (i + 1) );
notaAluno = teclado.nextFloat();
soma_ac = soma_ac + notaAluno;
i = i + 1;
}
mediaFinal = soma_ac / numN;
System.out.println("Media final é " + mediaFinal);
}
}
OBSERVE que neste exemplo, o comando while possui um bloco de instruções delimitado por "{" e "}". A razão disso é que existem múltiplas instruções no laço do loop.
Exercício associado ao exemplo 1
Modifique o exemplo acima para que no lugar de cada nota final de cada aluno, sejam fornecidas três notas. As duas maiores notas devem ser computadas para a média do aluno.