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

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

Capitulo 6 Iterações.

Apresentações semelhantes


Apresentação em tema: "Capitulo 6 Iterações."— Transcrição da apresentação:

1 Capitulo 6 Iterações

2 Ciclo while while (condição) instruções;
Repete o ciclo enquanto a condição é verdadeira while (balance < 2 * initial) { year++; balance = balance balance * rate / 100; }

3 Programa DoubleInv.java
public class DoubleInv { public double getYearsDoubleInv(double rate, double initialBalance) int year = 0; double balance = initialBalance; double interest = 0.0;

4 // keep accumulating interest until balance // doubles
while (balance < 2 * initialBalance) { year++; interest = balance * rate / 100; balance = balance + interest; } return year; } // End Class Nota: As regras de estilo no que toca aos comentários não foram seguidas apenas por falta de espaço.

5 Floxograma de um ciclo while

6 Erro comum : Ciclo Infinito
while (year < 20) { balance = balance balance * rate / 100; } while (year > 0) { year++; } O ciclo nunca termina

7 Ciclo for for (init; condition; update) statement
Exemplo: for (i = 1; i <= 10; i++) for (y = 20; y > 0; y--) ... Equivalente a: init; while (condition) { statement; update; }

8 Programa Invest.java public class Invest {
public double getBalance(double rate) final double INITIAL_BALANCE = 10000; final int NYEARS = 20; double balance = INITIAL_BALANCE; double interest = 0.0;

9 for (int year = 1; year <= NYEARS; year++)
{ interest = balance * rate / 100; balance = balance + interest; System.out.println("year: " + year + " balance: " + balance); } return balance; } // End Class Nota: As regras de estilo no que toca aos comentários não foram seguidas apenas por falta de espaço.

10 Floxograma de um ciclo for

11 Ciclo do do instruções; while (condição);
Executa as instruções pelo menos uma vez Examplo: do { rate ++; } while (rate <= 0);

12 Floxograma de um ciclo do

13 Diferenças while : repete 0 ou mais vezes
do ... while : repete 1 ou mais vezes for : repete n vezes

14 Erros comuns (1) O year deve iniciar a 0 ou 1 ?
year = 0; while (balance < 2 * initial) { year++; balance = balance + balance * rate / 100; } System.out.println("Doubled after " year + " years."); O year deve iniciar a 0 ou 1 ? O teste deve ser < ou <= ?

15 Erros comuns (2) Um ponto e virgula que não deve existir
sum = 0; for (i = 1; i <= 10; i++); { sum = sum + i; } System.out.println(sum); Um ponto e virgula que falta for (i = 1; i <= 10; sum = sum + i++) System.out.println(sum);

16 Ciclos Aninhados (1) Tabela de potências x y Exemplo for (int x = 0; x <= ROWS; x++) { print row // usa outro ciclo }

17 Ciclos Aninhados (2) Ciclo detro de um ciclo: for (int x = 0; x <= ROWS; x++) { for (int y = 0; y <= COLS; y++) { compute value print value } System.out.println(); } Número de ciclos: ROWS * COLS

18 Programa Table.java public class Table { public void print()
final int COLUMN_WIDTH = 10; int p = 0; for (int x = 1; x <= 10; x++) // print table row for (int y = 1; y <= 8; y++) p = (int)Math.pow(x, y);

19 // convert value to string
String pstr = "" + p; // pad with spaces while (pstr.length() < COLUMN_WIDTH) { pstr = " " + pstr; } System.out.print(pstr); System.out.println(); } // End Class Nota: As regras de estilo no que toca aos comentários não foram seguidas apenas por falta de espaço.

20 “Loop and a Half” boolean done = false; while (!done) {
if (line == null) { done = true; } else { process data } }

21 Sentinela (1) Marcam o fim de um ciclo Exemplo: 3.5 2.6 1.2 0
Ou melhor, usar uma sentinela não numérica como Q

22 Sentinela (2) boolean done = false; while (!done) {
if (line.equalsIgnoreCase(“Q”)) { done = true; } else { process data } }

23 Separação de Palavras Separa a String em palavras (as palavras são delimitadas por espaços em branco) StringTokenizer tokenizer = new StringTokenizer(); while (tokenizer.hasMoreTokens()) { String token = tokenizer.nextToken(); process token }

24 Tipo de Dados : char char: recebe um único caracter
Exemplos: 'A', '\u00E9' 'A‘ não é o mesmo que "A" String s = . . .; for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); process ch; }

25 Programa Reverse.java public class Reverse {
public String reverse(String s) String r = ""; char ch; for (int i = 0; i < s.length(); i++) ch = s.charAt(i); r = ch + r; // add ch in front } return r; } // End Class

26 Números Aleatórios e Simulações
Gerar números aleatórios: Random generator = new Random(); int n = generator.nextInt(CHOICES); double x = generator.nextDouble(); Exemplo (gerar números entre 1 e 6) int d = 1 + generator.nextInt(6);

27 Programa Dice.java import java.util.Random; public class Dice {
public Dice() generator_ = new Random(); } public int cast() return 1 + generator_.nextInt(6); private Random generator_; } // End Class


Carregar ppt "Capitulo 6 Iterações."

Apresentações semelhantes


Anúncios Google