Estruturas de Repetição em Java
Bruno Cartaxo
http://sites.google.com/site/brunocartaxo
[email protected]
Tópicos a serem discutidos na disciplina
•
Introdução a computadores e algoritmos
•
Tipos de dados, operadores, variáveis, E/S
•
Verificação manual de algoritmos e modularização
•
Estruturas de decisão: comandos SE e CASO
•
Estruturas de repetição: comandos ENQUANTO e PARA
•
Vetores
•
Introdução à Java
•
Trabalhando com strings em Java
•
Estruturas de decisão em Java
•
Estruturas de repetição em Java
Comando while (enquanto)
•
Sintaxe: while (condição) {instruções}
•
Tem o propósito de repetir o bloco de instruções enquanto uma
condição não for estabelecida.
•
Cuidado com loops infinitos!
while (x < 10) {
// instruções a serem repetidas
Exemplo de uso do comando while
import java.util.Scanner;
public class ExemploWhile {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
System.out.print("Digite um número inteiro positivo: ");
int numero = leitor.nextInt();
while (numero > 0) {
System.out.print(numero + ", "); numero--;
}
System.out.println("FOGO!!!");
Comando for (para)
•
Sintaxe: for (inicialização; condição; incremento) {instruções}
•
Realização uma ação repetitiva com um contador que é inicializado e
incrementado em cada iteração.
•
Comumente usado para iterar sobre estruturas de dados como arrays.
for (int i = 0; i < 10; i++) {
// instruções a serem repetidas
Exemplo de uso do comando for
import java.util.Scanner;
public class ExemploFor {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
System.out.print("Digite um número inteiro positivo: ");
int numero = leitor.nextInt();
for (int i = 0; i < numero; i++) { System.out.print(i + ", ");
} }
Exemplo 1
Faça um programa em Java que leia diversos números positivos e
Exemplo 1
–
Estruturando solução
•
Entradas
• Números positivos
•
Saídas
• A metade dos números
•
Detalhes
• Usar o comando WHILE repetir a leitura de números até que seja digitado um valor negativo.
Exemplo 1
–
Código
import java.util.Scanner;
public class Exemplo1 {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
System.out.print("Digite um número (negativo para sair): "); int numero = leitor.nextInt();
while (numero >= 0) {
double metade = numero / 2.0;
System.out.println("A metade de " + numero +" é " + metade); System.out.print("Digite um número (negativo para sair): ");
numero = leitor.nextInt(); }
Exemplo 1
–
Execuções
Digite um número (negativo para sair): 10 A metade de 10 é 5.0
Digite um número (negativo para sair): 7 A metade de 7 é 3.5
Digite um número (negativo para sair): 5 A metade de 5 é 2.5
Exemplo 2
Exemplo 2
–
Estruturando solução
•
Entradas
• Números reais
•
Saídas
• Maior número dentre os informados
•
Detalhes
Exemplo 2
–
Código
import java.util.Scanner;
public class Exemplo2 {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
System.out.print("Digite um número (-1 para sair): ");
double numero = leitor.nextDouble();
double maior = numero;
while (numero != -1) {
System.out.print("Digite um número (-1 para sair): ");
numero = leitor.nextDouble();
if (numero > maior) {
maior = numero; }
}
System.out.println("O maior número digitado é: " + maior);
Exemplo 2
–
Execuções
Exemplo 3
Exemplo 3
–
Estruturando solução
•
Entradas
• 10 números inteiros
•
Saídas
• Quantidade de números ímpares
•
Detalhes
• Serão necessárias 10 leituras. Podemos criar uma variável contadora para controlar este laço.
• Precisaremos de uma outra variável para contar a quantidade de números ímpares.
• Não podemos deixar para contar após a repetição, pois cada número fornecido apaga o anterior. Logo precisamos ir contando após cada entrada, incrementando uma nova variável contadora.
Exemplo 3
–
Código
import java.util.Scanner;
public class Exemplo3 {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in); int contImpar = 0;
for (int i = 0; i < 10; i++) {
System.out.print("Digite um número inteiro: "); int numero = leitor.nextInt();
if (numero % 2 != 0) {
contImpar++; }
}
System.out.println("Quantidade de números impares digitados: " + contImpar); }
Exemplo 3
–
Execuções
Digite um número inteiro: 5 Digite um número inteiro: 9 Digite um número inteiro: 2 Digite um número inteiro: 1 Digite um número inteiro: 10 Digite um número inteiro: 23 Digite um número inteiro: 73 Digite um número inteiro: 18 Digite um número inteiro: 202 Digite um número inteiro: 15
Exemplo 4
Exemplo 4
–
Estruturando solução
•
Entradas
•
Quantidade de CDs
•
Valor de cada um dos CDs
•
Saídas
•
Valor total investido em CDs
•
Valor média de cada CD
•
Detalhes
•
Podemos usar a quantidade de CDs como limite final da variável contadora do
comando FOR que irá ler o valor de cada um deles.
Exemplo 4
–
Código
import java.util.Scanner;
public class Exemplo4 {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
System.out.print("Digite a quantidade de CDs: ");
int quantidadeCds = leitor.nextInt();
double somaPrecos = 0;
for (int i = 0; i < quantidadeCds; i++) {
System.out.print("Digite o preço do CD " + (i + 1) + ": ");
double preco = leitor.nextDouble();
somaPrecos = somaPrecos + preco; }
double valorMedio = somaPrecos / quantidadeCds;
System.out.println("Valor total investido: " + somaPrecos);
System.out.println("Valor médio por CD: " + valorMedio);
Exemplo 4
–
Execuções
Exemplo 5
Exemplo 5
–
Estruturando solução
•
Entradas
•
Diversos números inteiros
•
Saídas
•
Tabuada de cada um dos números digitados
•
Detalhes
•
Usar o comando WHILE para fazer as leituras dos números sendo -1 a condição de
parada.
Exemplo 5
–
Código
import java.util.Scanner;
public class Exemplo5 {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
System.out.print("Digite um número inteiro positivo (ou negativo para terminar): ");
int numero = leitor.nextInt();
while (numero >= 0) {
for (int i = 1; i <= 10; i++) {
int multiplicacao = numero * i;
System.out.println(numero + " X " + i + " = " + multiplicacao);
}
System.out.print("Digite um número inteiro positivo (ou negativo para terminar): ");
numero = leitor.nextInt(); }
Exemplo 5
–
Execuções
Digite um número inteiro positivo (ou negativo para terminar): 2 2 X 1 = 2
2 X 2 = 4 2 X 3 = 6 2 X 4 = 8 2 X 5 = 10 2 X 6 = 12 2 X 7 = 14 2 X 8 = 16 2 X 9 = 18 2 X 10 = 20