capítulo 8 - rui rossi · rui rossi dos santos programação de computadores em java editora...

31
Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Cap Cap í í tulo 8 tulo 8 Estruturas de Repeti Estruturas de Repeti ç ç ão ão

Upload: dinhdang

Post on 22-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Capítulo 8 - Rui Rossi · 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

Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

CapCapíítulo 8tulo 8Estruturas de RepetiEstruturas de Repetiççãoão

Page 2: Capítulo 8 - Rui Rossi · 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

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.

Page 3: Capítulo 8 - Rui Rossi · 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

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

Page 4: Capítulo 8 - Rui Rossi · 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

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>

Page 5: Capítulo 8 - Rui Rossi · 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

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.

Page 6: Capítulo 8 - Rui Rossi · 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

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 suavalidade e encerre o aplicativo.

� Quando o nome for inválido, exiba uma mensagem de erro e solicite-onovamente.

� Para ser válido, o nome deve ter de 5 a 50 caracteres.

Page 7: Capítulo 8 - Rui Rossi · 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

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>);

Page 8: Capítulo 8 - Rui Rossi · 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

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.

Page 9: Capítulo 8 - Rui Rossi · 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

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 suavalidade 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.

Page 10: Capítulo 8 - Rui Rossi · 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

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>

Page 11: Capítulo 8 - Rui Rossi · 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

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.

Page 12: Capítulo 8 - Rui Rossi · 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

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.

Page 13: Capítulo 8 - Rui Rossi · 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

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

Page 14: Capítulo 8 - Rui Rossi · 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

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 informadoe 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çãojamais se torne falsa.

� Interrompa este laço quando o nome for válido.

Page 15: Capítulo 8 - Rui Rossi · 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

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 queforam registradas.

Page 16: Capítulo 8 - Rui Rossi · 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

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 nomeinválido foi informado.

� Se nenhum erro tiver sido cometido, apenas apresente umamensagem de boas-vindas.

� Se um nome inválido tiver sido informado, a mensagem de boas-vindas deve incluir o número de erros cometidos.

Page 17: Capítulo 8 - Rui Rossi · 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

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ésde 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 paraminú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 erroe 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.

Page 18: Capítulo 8 - Rui Rossi · 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

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.

Page 19: Capítulo 8 - Rui Rossi · 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

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.

Page 20: Capítulo 8 - Rui Rossi · 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

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.

Page 21: Capítulo 8 - Rui Rossi · 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

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.

Page 22: Capítulo 8 - Rui Rossi · 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

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 multiplicando-se 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.

Page 23: Capítulo 8 - Rui Rossi · 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

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.

Page 24: Capítulo 8 - Rui Rossi · 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

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.

Page 25: Capítulo 8 - Rui Rossi · 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

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.

Page 26: Capítulo 8 - Rui Rossi · 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

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.

Page 27: Capítulo 8 - Rui Rossi · 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

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 Alíquota

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 11,0

Page 28: Capítulo 8 - Rui Rossi · 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

Rui Rossi dos Santos 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 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

Page 29: Capítulo 8 - Rui Rossi · 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

Rui Rossi dos Santos 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.

Page 30: Capítulo 8 - Rui Rossi · 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

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.

Page 31: Capítulo 8 - Rui Rossi · 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

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