1
Estruturas de Controle
2
4.2 Algoritmos
• Algoritmos– Série de ações em uma ordem específica
• As ações executadas• Ordem na qual as ações são executadas
• Controle do Fluxo do Programa– Especificar a ordem na qual as ações são executadas
• As estruturas de controle ajudam a determinar esta ordem
3
4.3 Pseudocódigo
• Pseudocódigo– Linguagem informal para desenvolver algoritmos– Não é executado em computadores– Ajuda os desenvolvedores a "pensar" em algoritmos
4
4.4 Estruturas de Controle
• Execução seqüencial– As instruções do programa executam uma após a outra
• Transferência de Controle– Três estruturas de controle podem especificar a ordem de
execução das instruções:• estruturas de seqüência• estruturas de seleção• estruturas de repetição
5
4.4 Estruturas de Controle
• As estruturas seqüenciais são o default para a execução de programas Java
• Java tem três estruturas de seleção– if– if…else– switch
• Java tem três estruturas de repetição– while– do…while– for
• Cada uma dessas palavras é uma palavra reservada Java
6
4.5 Comando if (sem else)
• Estrutura de controle "entrada única/saída única"• Executa a ação somente se a condição for
verdadeira• Modelo de programação de ação/decisão
7
diagrama de atividade para um comando if
[grade >= 60]
[grade < 60]
print “Passed”
8
4.6 comando if…else
• Realiza a ação somente quando a condição é verdadeira
• Quando a condição é falsa, executa uma outra ação alternativa especificada pelo programador
• Operador condicional ternário (?:)• Estruturas if…else aninhadas
9
diagrama de atividade para um comando if..else
[grade >= 60][grade < 60]print “Failed” print “Passed”
10
4.7 O laço while
• Repita a ação enquanto a condição permanecer verdadeira
11
Diagrama de atividade para um laço while.
[product <= 1000]
[product > 1000]
dobra o valor do produto
merge
decisão
instrução Java:product = 2 * product;
124.8 Formulando algoritmos: Estudo de Caso 1 (Repetição controlada por
um contador)• Contador
– Variável que controla o número de vezes que um grupo de instruções é executada
• Media1.java calcula a média de notas– usa um contador para controlar o número de repetições
13
total 0contador 1
Enquanto contador <= 10Leia a próxima notatotal total + notacontador contador + 1
fim enquanto
media total / 10Imprime a média
Pseudo código de um algoritmo que usa uma estrutura de repetição controlada por um contador para resolver o problema da média de uma turma.
14
Outline15
Declara variáveis; contaNotas é o contador
Continua o laço enquanto contaNotas for menor ou
igual a 10
Outline16
Media1.java
17
4.9 Estudo de Caso 2 (Repetição controlada por uma sentinela)
• Valor sentinela– Usado para indicar o fim da entrada de dados
• Media2.java tem o número de repetições indefinido– Usuário entra o valor sentinela (-1) para terminar as
repetições
18
total 0contador 0
Leia a primeira nota (talvez até a sentinela)
Enquanto o usuário não digitar o valor sentinelatotal total + notacontador contador + 1Leia a próxima nota (talvez seja a sentinela)
fim enquanto
se contador <> 0média total / contadorImprime a média
senãoImprime “Nenhuma nota foi entrada”
O problema da média resolvido por um laço com sentinela
19
Outline20
efetua o laço até que o valor da sentinela nota seja igual a (-1)
Formata o número com duas casas decimais
Outline21
Media2.java
22
4.10 Estudo de Caso 3: Estruturas de Controle Aninhadas
• Estruturas de Controle Aninhadas
23
aprovados 0reprovados 0estudante 1
Enquanto estudante <= 10 Leia o próximo resultado de exame
Se o estudante passou aprovados aprovados + 1
senão reprovados reprovados + 1
estudante estudante + 1
Fim enquanto
Imprime o número de aprovadosImprime o número de reprovados
Se aprovados > 8 Imprime “Aumentar a dificuldade!”
Pseudo código para o problema da estatística dos resultados.
24
Outline25
Outline26
Analise.java
27
Operadores Associação Tipo ++ -- direita para a esquerda pós-incremento e pós-
decremento ++ -- + - (type) direita para a esquerda unários * / % esquerda para a direita multiplicativos + - esquerda para a direita aditivos < <= > >= esquerda para a direita relacionais == != esquerda para a direita igualdade ?: direita para a esquerda condicional = += -= *= /= %= direita para a esquerda atribuição Fig. 4.15 Precedência e associação dos operadores vistos até aqui.