Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.