A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação I Aula 5 (Instruções de Repetição) Prof. Gilberto Irajá Müller Última atualização 24/3/2009.

Apresentações semelhantes


Apresentação em tema: "Programação I Aula 5 (Instruções de Repetição) Prof. Gilberto Irajá Müller Última atualização 24/3/2009."— Transcrição da apresentação:

1 Programação I Aula 5 (Instruções de Repetição) Prof. Gilberto Irajá Müller Última atualização 24/3/2009

2 Instruções de Repetição As instruções de repetição permitem fazer com que a execução de uma instrução (simples ou composta) seja repetida diversas vezes. Em Java existem três modalidades: while, for e do.

3 Instruções de Repetição while Permite repetir uma instrução ou um bloco, enquanto uma dada condição se mantiver verdadeira. Sintaxe: while (condição) instrução; ou while (condição) { instrução1; instrução2; }

4 Instruções de Repetição Inicialmente a condição é avaliada. Se der resultado true (verdadeiro), a instrução é executada e a condição volta a ser avaliada. Enquanto a condição for true (verdadeira), esse processo se repete. Quando a condição for false, o controle saltará para a primeira instrução após o laço while.

5 Instruções de Repetição Exemplo 5.1: int i = 1; while (i <= 5) System.out.println(i++); Qual será a saída?

6 Instruções de Repetição Exemplo 5.2: Teclado t = new Teclado(); double d = 0; int i = 1; while (i <= 5) { d = t.leDouble(); if (d > 0) System.out.println(Math.pow(d, 2)); i++; }

7 Instruções de Repetição for Permite repetir um ou vários comandos, dentro de um intervalo de valores, do início ao fim desse intervalo. Sintaxe: for(expressão inicial; condição; expressão incremento) instrução; ou for(expressão inicial; condição; expressão incremento){ instrução 1; instrução 2; }

8 Instruções de Repetição A instrução for equivale a uma instrução while do tipo: while (condição) { instrução; expressão incremento; }

9 Instruções de Repetição Exemplo 5.3: for(int i = 1; i < 6; i++) System.out.println(i); Qual é a saída do código acima? Utilize o for para o exemplo 5.2.

10 Instruções de Repetição for com múltiplos componentes Pode-se ter mais de uma expressão inicial, desde que separadas por vírgula. Esta construção não permite a declaração das variáveis de tipos de diferentes dentro do for. Exemplo 5.4: int i = 0; double d = 0; for (i = 1, d = 10; i <= 5; i++, d -=0.5) System.out.println(i + " " + d); QUAL É A SAÍDA DO CÓDIGO ACIMA?

11 Instruções de Repetição Laços for aninhados Acontece quando temos um for dentro do corpo de outro for. Exemplo 5.5: for (int i = 1; i<=5; i++) { for (int j = 1; j<=i; j++) System.out.print("* "); System.out.println(“”); } QUAL É A SAÍDA DO CÓDIGO ACIMA?

12 Instruções de Repetição do (...while) É uma versão do laço while-do, mas difere porque a condição é testada no fim do laço, enquanto no while o teste ocorre no início do laço. Assim, o laço while pode executar zero vezes, enquanto o do executa pelo menos uma vez.

13 Instruções de Repetição Sintaxe: do instrução; while (condição); ou do { instrução1; instrução2; } while (condição); Enquanto a condição for verdadeira (true), o laço será executado.

14 Instruções de Repetição Exemplo 5.6: int idade; Teclado t = new Teclado(); do idade = t.leInt("Informe a idade: "); while (idade <= 0); Faça o exemplo 5.4 com a instrução do/while

15 Instruções de Repetição Variáveis Locais Há situações em que necessitamos usar uma variável auxiliar dentro de um método, que não pode ser uma variável de instância (atributo), nem um parâmetro. Podemos declarar variáveis locais que serão conhecidas somente dentro do método. Quando o método terminar seu processamento, a variável desaparecerá. É o caso das variáveis usadas nos exemplos anteriores para controlar as repetições.

16 Instruções de Repetição Exemplo 5.7: int i = 0; double salario = 500.0; Se declararmos uma variável dentro do for, ela não será reconhecida fora do laço for. Perceba a diferença entre os dois trechos a seguir:

17 Instruções de Repetição double d = 0; for (d = 10; d > 0; d -= 0.5) System.out.println(d); for (double d = 10; d > 0; d -= 0.5) System.out.println(d); A variável “d” foi declarada fora do “for”. Portanto, terá vida útil nas instruções seguintes. A variável “d” foi declarada dentro do “for”. Portanto, terá vida útil somente dentro do “for”. A instrução ocasionará ERRO, pois não existe a variável “d”.

18 Instruções de Repetição Escopo de Variáveis O escopo de uma variável é o espaço do programa em que a referida variável é reconhecida. Java restringe o escopo da variável ao bloco onde foi declarada. Assim, quanto ao escopo, as variáveis se dividem em: Atributo privado – seu escopo é a classe toda Parâmetro – seu escopo é o método ou o construtor onde foi declarado Variável local – seu escopo é o método, ou o construtor, ou o for/while/do, ou o bloco de código onde foi declarada

19 Instruções de Repetição Vida útil das variáveis É o espaço de tempo que vai da alocação de memória para a variável até a sua eliminação (liberação deste espaço de memória), durante a execução de um programa: Atributo – alocação quando o objeto é instanciado e eliminação quando o objeto é destruído Parâmetro – alocação quando o método ou construtor onde foi declarado é chamado e eliminação quando o método ou construtor termina sua execução Variável local – alocação quando o método, construtor, for/while/do ou bloco de código onde ela foi declarada inicia a execução e eliminação ao término desta execução

20 Instruções de Repetição Contadores e Acumuladores O método a seguir lê do teclado diversas idades de pessoas parando quando for lida uma idade negativa ou nula. O método calcula e devolve a média das idades lidas, ou zero, se nenhuma idade positiva for lida.

21 Instruções de Repetição public int calculaMediaIdades() { // soma, conta e idade são variáveis locais int soma = 0; int cont = 0; Teclado t = new Teclado(); int idade = t.leInt("Digite uma idade(0 interrompe): "); while (idade > 0){ soma = soma + idade; cont++; idade = t.leInt("Digite uma idade(0 interrompe): "); } if (cont > 0) // este teste é para evitar a divisão por zero return soma / cont; else return 0; }

22 Instruções de Repetição Qual é a variável “contador”? Qual é a variável “acumulador”? Um contador executa uma tarefa de contagem de alguma grandeza (no caso, idades válidas digitadas). Um acumulador executa uma tarefa de soma de alguma grandeza (no caso, idades válidas digitadas). Um contador recebe incrementos constantes. Um acumulador recebe incrementos variáveis.

23 Métodos Exercício 5.8 Escreva um método Java que recebe a altura n e devolve um String com o seguinte triângulo (use o caractere de escape \n para indicar o salto de linha): 1 2 3 3 3 4 4 etc... Dica: Tem dois for

24 Métodos Exercício 5.9 Escreva um método que calcula o fatorial de um determinado valor inteiro. Passe como parâmetro esse valor inteiro! Dica: Tem for

25 Métodos Exercício 5.10 Escreva um método que lê via teclado 8 números reais positivos e retorna o valor do maior deles. Validar os dados de entrada, pedindo outro número sempre que o usuário digitar um valor nulo ou negativo. Dica: Tem while, for e if

26 Métodos Exercício 5.11 Escreva um método em Java de nome max, que recebe quatro números inteiros e retorna o valor do maior deles. Dica: Tem if

27 Métodos Exercício 5.12 Escreva um método em Java que lê do teclado um número qualquer e retorna a palavra Positivo, Negativo ou Nulo, conforme o caso. Dica: Tem if... else if...

28 Métodos Referências bibliográficas http://inf.unisinos.br/~anibal http://www.google.com.br


Carregar ppt "Programação I Aula 5 (Instruções de Repetição) Prof. Gilberto Irajá Müller Última atualização 24/3/2009."

Apresentações semelhantes


Anúncios Google