• Nenhum resultado encontrado

ESTRUTURAS DE

N/A
N/A
Protected

Academic year: 2021

Share "ESTRUTURAS DE"

Copied!
23
0
0

Texto

(1)

P R O F . P A U L O D E T A R S O J R .

ESTRUTURAS DE REPETIÇÃO

Atualizado em 12/03/2016

(2)

OBJETIVOS

• Apresentar as três estruturas de repetição (loops) disponíveis em 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 e analisar quando cada uma delas é a mais adequada.

• Apresentar mecanismos que podem ser

empregados para interromper ou desviar o fluxo de exceção de uma estrutura de repetição.

2

(3)

ESTRUTURAS DE REPETIÇÃO

• Permitem que um bloco de comandos seja executado diversas vezes

Repetição condicional: executa um bloco de código enquanto uma condição lógica for verdadeira

do...while

while

Repetição contável: executa um bloco de código um número predeterminado de vezes

for

3

(4)

REPETIÇÃO CONDICIONAL - WHILE

• Pseudocódigo

...

Enquanto CONDIÇÃO faça INSTRUÇÃO 1

INSTRUÇÃO 2 ...

INSTRUÇÃO N ...

4

Condição

?

Bloco do loop

F V

Fluxograma

(5)

REPETIÇÃO CONDICIONAL - WHILE

Java ...

while (CONDIÇÃO) { INSTRUÇÃO 1;

INSTRUÇÃO 2;

...

INSTRUÇÃO N;

}

...

(6)

REPETIÇÃO CONDICIONAL - WHILE

• Executa o bloco de instruções enquanto a condição for verdadeira

• A condição é uma expressão booleana que pode fazer uso de quaisquer operadores

• A condição deve sempre estar entre parênteses

• Pode-se omitir { e } caso execute somente uma

instrução

(7)

REPETIÇÃO CONDICIONAL - WHILE

• Executa o bloco de instruções enquanto a condição for verdadeira

• A condição é uma expressão booleana que pode fazer uso de quaisquer operadores

• A condição deve sempre estar entre parênteses

• Pode-se omitir { e } caso execute somente uma instrução

Nenhuma novidade: igual ao if!!!

(8)

EXEMPLO DE - WHILE

Programa para calcular fatorial de um número:

import java.util.Scanner;

public class Fatorial {

public static void main(String[] args) {

Scanner teclado = new Scanner(System.in);

System.out.print("Entre com um número inteiro positivo: ");

int numero = teclado.nextInt();

long fatorial = 1;

while (numero > 0) {

fatorial *= numero--;

}

System.out.println("O fatorial desse número é " + fatorial);

} }

(9)

EXEMPLO DE WHILE

Qual a saída do programa abaixo?

public class Loop {

public static void main(String[] args) { int i = 0;

while (true)

System.out.println(i++);

} }

• Evitem forçar loops infinitos sempre que possível!

(10)

REPETIÇÃO CONDICIONAL - DO...WHILE

• Pseudocódigo

...

Faça

INSTRUÇÃO 1 INSTRUÇÃO 2 ...

INSTRUÇÃO N Enquanto CONDIÇÃO ...

Condição

?

Bloco do loop

F V

Fluxograma

(11)

REPETIÇÃO CONDICIONAL - DO...WHILE

Java ...

do {

INSTRUÇÃO 1;

INSTRUÇÃO 2;

...

INSTRUÇÃO N;

} while (CONDIÇÃO);

...

(12)

REPETIÇÃO CONDICIONAL - DO...WHILE

• Executa o bloco de instruções enquanto a condição for verdadeira

Garante que ocorrerá ao menos uma execução

• A verificação da condição é feita depois do bloco de instruções

• Valem as mesmas condições do while

(13)

REPETIÇÃO CONDICIONAL - DO...WHILE

import java.util.Scanner;

public class Fatorial {

public static void main(String[] args) {

Scanner teclado = new Scanner(System.in);

System.out.print("Entre com um número inteiro positivo: ");

int numero = teclado.nextInt();

long fatorial = 1;

do {

fatorial *= numero--;

} while (numero > 0);

System.out.println("O fatorial desse número é " + fatorial);

} }

(14)

ENTÃO DA NO MESMO?

• Não!!!

• Reparem que pedimos para o usuário "Entre com um número inteiro positivo: "

• Para esse cenário, ambas as estruturas funcionaram

• O que acontece se pedirmos para o usuário "Entre com um número inteiro não negativo: “

• Qual das duas estruturas resolve o problema corretamente se o usuário entrar com zero?

• Qual o resultado provido pela outra?

• Lembrem: fatorial de zero é 1!

(15)

REPETIÇÃO CONTÁVEL - FOR

• Pseudocódigo

...

Para CURSOR variando de

VALOR INICIAL a VALOR FINAL com passo INCREMENTO

INSTRUÇÃO 1 INSTRUÇÃO 2 ...

INSTRUÇÃO N ...

Bloco do loop

Fluxograma

Valor Inicial Valor Final Incremento

Cursor

(16)

REPETIÇÃO CONTÁVEL - FOR

Java

...

for (INICIALIZAÇÃO; TERMINAÇÃO; INCREMENTO) { INSTRUÇÃO 1;

INSTRUÇÃO 2;

...

INSTRUÇÃO N;

} ...

(17)

REPETIÇÃO CONTÁVEL - FOR

• Executa o bloco de instruções por um número predeterminado de vezes

Expressão de inicialização

• Utilizada para iniciar a variável de controle do loop (cursor)

• Executada uma única vez, antes do primeiro loop

Expressão de terminação

• Termina a execução do loop quando tiver o valor false

• Verificada antes de cada loop

(18)

REPETIÇÃO CONTÁVEL - FOR

Expressão de incremento

• Pode incrementar ou decrementar a variável de controle (cursor)

• Executada no final de cada loop

• As expressões devem sempre estar entre

parênteses e separadas por ponto-e-vírgula

• Pode-se omitir { e } caso execute somente uma

instrução

(19)

EXEMPLO DE FOR

• Programa para calcular fatorial de um número:

import java.util.Scanner;

public class Fatorial {

public static void main(String[] args) {

Scanner teclado = new Scanner(System.in);

System.out.print("Entre com um número inteiro positivo: ");

int numero = teclado.nextInt();

long fatorial = 1;

for (int i = 1; i <= numero; i++) { fatorial *= i;

}

System.out.println("O fatorial desse número é " + fatorial);

} }

(20)

EXEMPLO DE FOR

Qual a diferença de

for (int i = 1; i <= numero; i++) { fatorial *= i;

}

Para

for (int i = numero; i >= 1; i--) { fatorial *= i;

}

?

(21)

DÚVIDAS

21

(22)

REFERÊNCIAS BIBLIOGRÁFICAS

• Claro D. B. e Sobral J. B. M. PROGRAMAÇÃO EM JAVA

• Java - Como Programar - 8ª Ed. 2010

• Disponível em:

http://olimpiada.ic.unicamp.br/extras/cursoC/Cap 06-RepeticaoControle-texto.pdf Acesso em:

12/03/2016

• While. Disponível em:

http://www.tiexpert.net/programacao/java/while.

php Acesso em: 12/03/2016

22

(23)

P R O F . P A U L O D E T A R S O J R .

ESTRUTURAS DE REPETIÇÃO

Atualizado em 12/03/2016

Referências

Documentos relacionados

A meta prevista para este indicador era garantir a realização de exames complementares em dia a 100% de hipertensos e diabéticos do programa, por tanto não foi atingida,

potencialmente porque não são entendidos como tal pela maioria da população e porque não estão classificados — e, em parte, a uma lacuna consistente relativa à formação de

Desta maneira, observando a figura 2A e 2C para os genótipos 6 e 8, nota-se que os valores de captura da energia luminosa (TRo/RC) são maiores que o de absorção (ABS/RC) e

–interruptor simples – interruptor paralelo – tomada baixa monofásica sem aterramento; e) ponto de luz no teto – ponto de luz em parede. – interruptor simples –

Mediante o impacto do paciente com o ambiente do centro cirúrgico, a equipe de enfermagem deve estar voltada para o aspecto humano do atendimento, centrando suas

tidos para o Coefi ciente de Efi cácia Protéica para o leite de búfala, vaca e caseína como padrão, verifi caram que a caseína e o leite de vaca, não apresentaram diferença

Os resultados mostram efeito benéfico, quadrático, do ácido cítrico, na presença do fosfato natural, sobre os parâmetros avaliados; na ausência da aplicação ácido cítrico,

[r]