Estruturas de Repetição

Propaganda
Capítulo 8
Estruturas de Repetição
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Objetivos do Capítulo
Apresentar as três estruturas de repetição (loops)
disponíveis no Java: while, do-while e for.
Indicar a sintaxe que deve ser empregada para a construção
de cada diferente tipo de estrutura de repetição.
Explorar diferentes tipos de tarefas que podem ser realizadas
por uma estrutura de repetição e analisar quando cada uma
delas é a mais adequada.
Apresentar os mecanismos que podem ser empregados para
interromper ou desviar o fluxo de execução em uma estrutura
de repetição.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Introdução
Estrutura de repetição = loop = laço
Finalidade: repetir uma instrução ou bloco
Composição:
Inicialização
Condição
Corpo
Iteração
Tipos:
while
do-while
for
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Estrutura while
while = enquanto
Sintaxe:
<inicialização>
while (<condição>)
<corpo>
<iteração>
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Estrutura while
Código 8.1 – While.java
Escreva um laço que imprima o valor de uma variável inteira.
Esta variável deve iniciar com zero.
A variável deve ser incrementada antes de ser impressa.
Isso deve se repetir enquanto a variável for menor que cinco.
Escreva um laço que imprima o valor de uma variável inteira e o
caractere correspondente a ele.
Esta variável deve iniciar com 69.
A variável deve ser decrementada depois de ser impressa.
Isso deve se repetir enquanto a variável for maior ou igual a 65.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Estrutura while
Código 8.2 – ValidaNome.java
Crie um programa que solicite o nome do usuário.
Quando o nome for válido, exiba uma mensagem que indique sua
validade e encerre o aplicativo.
Quando o nome for inválido, exiba uma mensagem de erro e solicite-o
novamente.
Para ser válido, o nome deve ter de 5 a 50 caracteres.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Estrutura do-while
while versus do-while
while = condição testada antes da primeira execução
do-while: condição testada após uma execução
Sintaxe:
<inicialização>
do
<corpo>
<iteração>
while (<condição>);
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Estrutura do-while
Código 8.3 – DoWhile.java
Escreva um laço que imprima o valor de uma variável inteira.
Esta variável deve iniciar com nove.
A variável deve ser incrementada antes de ser impressa.
Isso deve se repetir enquanto a variável for menor que cinco.
Escreva um laço que imprima o valor de uma variável inteira e o
caractere correspondente a ele.
Esta variável deve iniciar com 69.
A variável deve ser decrementada depois de ser impressa.
Isso deve se repetir enquanto a variável for maior ou igual a 65.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Estrutura do-while
Código 8.4 – ValidaEmail.java
Crie um programa que solicite o e-mail do usuário.
Quando o e-mail for válido, exiba uma mensagem que indique sua
validade e encerre o aplicativo.
Quando o e-mail for inválido, solicite-o novamente.
Para ser válido, o e-mail deve atender aos seguintes requisitos:
Deve ter pelo menos 5 caracteres.
Deve ter somente um símbolo de arroba.
Este símbolo não pode ser o primeiro caractere.
Este símbolo não pode ser o último caractere.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Estrutura for
Característica: compacta
Sintaxe:
for (<inicialização>; <condição>; <iteração>)
<corpo>
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Estrutura for
Código 8.5 – For.java
Escreva um laço que imprima o valor de uma variável inteira.
Esta variável deve iniciar com 1.
A variável deve ser incrementada depois de ser impressa.
Isso deve se repetir enquanto a variável for menor ou igual a 5.
Escreva outro laço que imprima o valor de uma variável inteira.
Esta variável deve iniciar com 5.
A variável deve ser decrementada depois de ser impressa.
Isso deve se repetir enquanto a variável for maior ou igual a 1.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Estrutura for
Código 8.6 – Compras.java
Crie um programa que solicite a descrição de 5 itens para
compor uma lista de compras.
Grave todos os itens em uma única string.
Se o diálogo de entrada for cancelado, encerre o aplicativo.
Ao final, exiba a lista de compras com os 5 itens registrados.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Quebras de Laço
Finalidade: interromper o fluxo normal de um laço
Tipos:
break: encerra o laço
continue: desvia a execução
No while e do-while: para a condição
No for: para a iteração
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Quebras de Laço
Código 8.7 – Break.java
Crie um programa que solicite o nome do usuário.
Quando o nome for válido, exiba uma mensagem co o nome informado
e encerre o aplicativo.
Quando o nome for inválido, solicite-o novamente.
Para ser válido, o nome deve ter pelo menos 2 caracteres.
Para repetir a solicitação do nome, utilize um laço cuja condição
jamais se torne falsa.
Interrompa este laço quando o nome for válido.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Quebras de Laço
Código 8.8 – Tarefas.java
Crie um programa que solicite a descrição de até 10 tarefas para
compor uma lista de coisas a serem feitas.
Grave todas as tarefas em uma única string.
Se o diálogo de entrada for cancelado, exiba a lista de tarefas que
foram registradas.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Quebras de Laço
Código 8.9 – Continue.java
Crie um programa que solicite o nome do usuário.
Utilize um laço for para realizar esta solicitação.
Quando o nome for inválido, solicite-o novamente.
Utilize o contador do laço for para contar quantas vezes um nome
inválido foi informado.
Se nenhum erro tiver sido cometido, apenas apresente uma
mensagem de boas-vindas.
Se um nome inválido tiver sido informado, a mensagem de boasvindas deve incluir o número de erros cometidos.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Quebras de Laço
Código 8.10 – Musicas.java
Crie um programa que permita registrar até 10 músicas.
O nome do artista e o nome da música devem ser informados através
de diálogos distintos.
Grave todos os dados em uma única string. Antes de gravá-los,
converta o nome do artista para maiúsculo e o título da música para
minúsculo.
Se um diálogo de entrada for cancelado, exiba uma lista com as
músicas que foram registradas.
Se um dado inválido for informado, exiba uma mensagem de erro
e solicite-o novamente.
O título da música deve ter de 2 a 30 caracteres.
O nome do artista deve ter de 5 a 40 caracteres.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Exercício 1
Crie um novo aplicativo, chamado Exercicio0801, que solicite
seu nome completo e avalie se o dado informado é válido.
Se o diálogo de entrada for cancelado, o aplicativo deve ser
encerrado imediatamente.
Se o nome não for válido, uma mensagem de erro deve ser
exibida e o aplicativo deve solicitá-lo novamente.
Se o nome for válido, o aplicativo deve exibir uma mensagem
com o nome informado.
As regras para a validação do dado informado são as
seguintes:
Deve ter de 5 a 50 caracteres.
Não pode ter números.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Exercício 1
As figuras abaixo ilustram a saída que deve ser produzida por
este aplicativo para diferentes entradas.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Exercício 2
Crie um novo aplicativo, chamado Exercicio0802, que solicite
seu CPF e avalie se o dado informado é válido.
Se o diálogo de entrada for cancelado, o aplicativo deve ser
encerrado imediatamente.
Se o CPF não for válido, uma mensagem de erro deve ser exibida
e o aplicativo deve solicitá-lo novamente.
Se o CPF for válido, o aplicativo deve exibir uma mensagem com
o CPF informado.
As regras para a validação do dado informado são as
seguintes:
Deve ter 11 caracteres.
Todos os caracteres devem ser dígitos numéricos.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Exercício 2
As figuras abaixo ilustram a saída que deve ser produzida por
este aplicativo para diferentes entradas.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Exercício 3
Crie um novo aplicativo, chamado Exercicio0803, que solicite
um número e calcule o seu fatorial.
Se o diálogo de entrada for cancelado, o aplicativo deve ser
encerrado imediatamente.
Se o número não for válido, uma mensagem de erro deve ser
exibida e o aplicativo deve solicitá-lo novamente.
Se o número for válido, o aplicativo deve exibir uma mensagem
com o seu fatorial.
Para ser válido, o número deve estar entre 0 e 25.
O cálculo do fatorial de um número é realizado multiplicandose este número por todos os números inteiros positivos
anteriores a ele.
Por exemplo: o fatorial de 4 é 24 (4 x 3 x 2 x 1).
Além disso, o fatorial de zero é igual a um.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Exercício 3
As figuras abaixo ilustram a saída que deve ser produzida por
este aplicativo para uma entrada válida.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Exercício 4
Crie um novo aplicativo, chamado Exercicio0804, que realize um
número ilimitado de cálculos de IMC.
Para realizar cada cálculo, o aplicativo deve solicitar um peso e uma
altura.
Se qualquer um destes diálogos for cancelado, o aplicativo deve ser
encerrado imediatamente.
Se um destes dados informados não for válido, uma mensagem de erro
deve ser exibida e o aplicativo deve solicitá-lo novamente.
Se os dois dados forem válidos, o aplicativo deve exibir uma mensagem
contendo o IMC e a categoria correspondentes.
As regras para a validação dos dados informados são as seguintes:
Peso: deve ser um número entre 1,0 e 300,0.
Altura: deve ser um número entre 0,1 e 2,5.
Depois de realizar um cálculo de IMC e exibir a mensagem final, o
aplicativo deve iniciar um novo procedimento de captação de dados
para um novo cálculo.
Ele deve realizar esta tarefa pela quantidade de vezes que você desejar e
só deve ser encerrado quando você cancelar um dos diálogos de entrada.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Exercício 4
As figuras abaixo ilustram a saída que deve ser produzida por
este aplicativo para duas entradas válidas.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Exercício 5
Crie um novo aplicativo, chamado Exercicio0805, que simule
a emissão de um relatório simplificado de folha de
pagamento.
O aplicativo deve utilizar diálogos de entrada de dados para
solicitar o nome e o salário de um número ilimitado de
funcionários.
Se qualquer um destes diálogos for cancelado, o aplicativo deve
ser encerrado imediatamente.
Se um destes dados informados não for válido, uma mensagem
de erro deve ser exibida e o aplicativo deve solicitá-lo
novamente.
As regras para a validação dos dados informados são as
seguintes:
Nome: deve ter de 2 a 30 caracteres.
Salário: deve ser um valor igual ou superior a R$ 465,00.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Exercício 5
O teto para recolhimento de INSS é de RS 354,07. Esse é o
valor máximo que pode ser descontado do funcionário.
Para cada funcionário, o aplicativo deve calcular os valores a
serem descontados de seu salário a título de INSS e de
Imposto de Renda. Para calcular o valor do INSS a ser
descontado, utilize a tabela abaixo:
Salário
Até R$ 965,67
8,0
De R$ 965,68 a R$ 1.609,45
9,0
De R$ 1.609,46 a R$ 3.218,90
Rui Rossi dos Santos
Alíquota
11,0
Programação de Computadores em Java
Editora NovaTerra
Exercício 5
Para calcular o valor do Imposto de Renda, utilize a tabela
abaixo.
Salário
Rui Rossi dos Santos
Alíquota
Até R$ 1.434,00
0,0
De R$ 1.434,01 a R$ 2.150,00
7,5
De R$ 2.150,01 a R$ 2.886,00
15,0
De R$ 2.886,01 a R$ 3.582,00
22,5
Acima de 3.582,00
27,5
Programação de Computadores em Java
Editora NovaTerra
Exercício 5
O aplicativo também deve calcular o salário líquido a ser
pago a cada funcionário, que representa o valor do salário
decrescido dos valores do INSS e do Imposto de Renda.
Ele deve captar o nome e o salário de um funcionário e
realizar todos estes cálculos a quantidade de vezes que você
desejar.
Quando você cancelar um dos diálogos de entrada de dados,
este aplicativo deve exibir uma mensagem contendo uma
lista com o nome e o salário de cada funcionário que você
informou, bem como os valores do INSS e do Imposto de
Renda e o salário líquido a ser pago a cada um deles.
Ao final desta lista, o aplicativo também deve indicar
algumas totalizações: a soma do valor de todos os salários,
as somas dos descontos de INSS e de Imposto de Renda e a
soma de todos os salários líquidos.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Exercício 5
As figuras abaixo ilustram os diálogos produzidos por este
aplicativo.
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Contato
Com o autor:
Rui Rossi dos Santos
E-mail: [email protected]
Web Site: http://www.ruirossi.pro.br
Com a editora:
Editora NovaTerra
Telefone: (21) 2218-5314
Web Site: http://www.editoranovaterra.com.br
Rui Rossi dos Santos
Programação de Computadores em Java
Editora NovaTerra
Download