Estruturas de Controle – ENQUANTO...FAÇA – Repetição controlada por contador 1
Hoje veremos nossa primeira estrutura de repetição controlada por contador. Mas o que significa isso??? È simples!!! As estruturas de repetição são estruturas de comando que executam uma mesma ordem repetidas vezes até que alguma condição (normalmente numérica e expressa pelo contador ) seja satisfeita para que ela saia da repetição. Vamos dar um exemplo. Se você quiser somar dez números, você não precisa digitar dezenas de linhas de comando. Basta fazer um conjunto de instruções e com a estrutura de repetição, fazer que estas instruções sejam repetidas dez vezes. Para verificar as dez vezes você usa o contador:
Enquanto o contador for menor que 10 faça
Digite um numero
Armazena o numero na variável numero
Soma = soma + numero
Contador = contador + 1
Visualizar o resultado
Fim do programa
Toda vez que o programa executar a instrução, um numero é aumentado no contador. Quando o contador atingir 10, a soma é visualizada e o programa é encerrado.
A estrutura de controle utilizada será o Enquanto...Faça. A expressão java para esta estrutura é:
while (condição a ser satisfeita) {
instruções a serem repetidas;
}
O programa que montei para demonstração calcula o fatorial de um número. Fatorial é uma função matemática em que um numero é o produto de todos os seus antecessores. Ex:
Fatorial de 6 é expresso desta forma : 6! = 6*5*4*3*2*1=720
Vamos montar nosso programa:
1 - Para iniciar o programa vamos abrir o NetBeans, depois vamos em arquivos / Novo projeto
2 - No assistente de Novo Projeto, clique em geral na janela categoria e escolha Aplicação Java na janela Projetos. Clique em próximo.
3 – Continuando no assistente,
- em Nome do Projeto coloque Fatorial App,
- em Criar Classe Principal coloque fatorialapp.FatorialApp
- deixar o chekbox Definir como Projeto Principal selecionado
- em Localização do Projeto coloque C:\Java\Aulas\Aula9
4 – Clique em finalizar.
.
5 – Apague tudo o que estiver escrito na janela de edição de código e digite o código abaixo. Os números das linhas não devem ser digitados pois servem apenas de orientação.
Linhas - Código
1 /*
2 * FatorialApp.java
3 * Created on 8 de Maio de 2008, 23:05
4 */
5 package fatorialapp;
6 import java.util.Scanner;
7 import java.lang.String;
8 /**
9 * @author Rogerio
10 */
11 public class FatorialApp {
12 public static void main(String[] args) {
13 Scanner input = new Scanner( System.in ); //cria um scanner para obter os numeros digitados
14 int a,fatorial; // declaração das variaveis do tipo inteiro
15 System.out.println("Insira o número que você quer calcular o fatorial."); //solicita que o usuario insira um numero para o calculo do fatorial
16 a=input.nextInt(); // captura um numero e o armazena na variavel
17 fatorial=1; //inicia a variavel fatorial
18 while (a >=1){ //inicia a estrutura de controle enquanto
19 fatorial = fatorial*a; //operações aritmeticas para o calculo do fatorial
20 a=a-1;
21 } // encerra a estrutura de controle enquanto
22 System.out.println("O fatorial é "+fatorial); // demonstra o resultado na tela
23 }
24 } |
6 - Para compilar o arquivo escolha no menu superior Construir/Construir Projeto Principal
7 - Para executar o programa escolha no menu superior Executar/Executar Programa Principal
O resultado final deve ser o seguinte:

Vamos explicar o código acima:
Linhas 1 a 4 e 8 a 10 são apenas comentários sobre o programa
Linha 5 cria o pacote fatorialapp
Linhas 6 e 7 importam duas classes para utilizarmos suas funções
- A classe Java.util.Scanner que já é conhecida e permite inserirmos dados no programa via teclado
- A classe java.lang.Integer que permite que os dados inseridos sejam lidos como números inteiros já que trabalharemos só com números inteiros.
Linha 11- cria a classe publica FatorialApp
Linha 12 – Inicia o método main ( ver aulas anteriores )
Linha 13 - importa a classe útil.scanner que abre um terminal no fim do prompt para inserirmos dados.
Linha 14 – Declaramos as variáveis como int já que os números serão inteiros
Linhas 15 – Apenas linhas de texto para explicar ao usuário o q fazer
Linha 16 - o comando input.nextInt() captura o número digitado e o armazena na respectiva variável. Usamos números inteiros pois só se pode calcular fatorial de números inteiros.
Linha 17 – Atribui um valor a variável fatorial para que na equação algébrica, dentro da repetição, ela tenha um valor inicial. (caso contrário não tem como o computador resolver a expressão pois ele não sabe o valor da variável fatorial)
Linha 18 – Estrutura de controle enquanto
Linha 19 – procedimento (expressão algébrica)
Linha 20 – diminui um no contador visando controlar as repetições
Linha 21 - finalisa a estrutura de controle
Linha 22 – Demonstra o resultado na tela
Linha 23 – Finaliza a método main
Linha 24 – Finaliza a classe
Neste programa trabalhamos com uma condição regressiva, ou seja, o contador vai diminuindo até que a condição (ser maior ou igual a 1) seja satisfeita. Há a necessidade de colocar o sinal maior pois se utilizarmos apenas o sinal igual, a linguagem entenderia que a variável a é igual a 1 (atribuiria o valor de 1 para a variável a), e se colocassemos o sinal de menor o programa sairia da condição já que 4 é maior que 1 e não menor.
A idéia deste programa é trabalhar com a estrutura while de maneira simples. Analise bem a estrutura e sua forma de escrita. Observe a maneira como é testada a condição.
-Um recuo na margem quando se escreve o código dos procedimentos não é obrigatório mas torna o código mais legível e é praticado por quase todos programadores.
- Toda instrução java deve ser finalizada com ponto e virgula.
- N ão se deve colocar vírgula depois da condição nas estruturas while |
Lembre – se que Java é Case-Sensitive, isto é, diferencia as letras maiúsculas das minúsculas.
|
Há varias maneiras de escrever este programa e chegar ao mesmo resultado. O objetivo principal deste programa foi demonstrar a utilização de estrutura de repetição while, e também se familiarizar com alguns comandos básicos de Java.
Ao fim desta aula você deve saber :;
- estrutura de controle Enquanto/Faça
- o uso da classe útil.Scanner
Espero que tenham gostado !
Referência: http://java.sun.com/docs/books/tutorial/getStarted/cupojava/netbeans.html
Java – Como programar – Deitel – Quarta edição
|