Capítulo 4:
Instruções de
controle: parte 1;
operadores de
atribuição ++ e --
© 2016 Pearson. Todos os direitos reservados.
Algoritmos
• Qualquer problema de computação pode ser resolvido executando uma série de
ações em uma ordem específica. Esse procedimento é chamado algoritmo.
• Especificar a ordem em que as instruções são executadas em um programa
chama-se controle de programa.
slide 2 © 2016 Pearson. Todos os direitos reservados.
Pseudocódigo
• Pseudocódigo é uma linguagem informal que ajuda a desenvolver algoritmos sem
se preocupar com os estritos detalhes da sintaxe da linguagem Java.
• O pseudocódigo ajuda você a “estudar” um programa antes de tentar escrevê-lo
em uma linguagem de programação como Java. O pseudocódigo cuidadosamente
preparado pode ser facilmente convertido em um programa Java correspondente.
slide 3 © 2016 Pearson. Todos os direitos reservados.
Estruturas de controle
• Normalmente, instruções em um programa são executadas uma após a outra na
ordem em que são escritas. Esse processo é chamado execução sequencial.
• Várias instruções Java permitem a você especificar que a próxima instrução a
executar não seja necessariamente a próxima na sequência. Isso é chamado
transferência de controle.
slide 4 © 2016 Pearson. Todos os direitos reservados.
Estruturas de controle
• Bohm e Jacopini demonstraram que todos os programas poderiam ser escritos
em termos de somente três tipos de estruturas de controle — a estrutura de
sequência, a estrutura de seleção e a estrutura de repetição.
• O termo “estruturas de controle” vem do campo das ciências da computação. A
Java Language Specification refere-se a “estruturas de controle” como “instruções
de controle”.
slide 5 © 2016 Pearson. Todos os direitos reservados.
Estruturas de controle
• Diagramas de atividades fazem parte da UML. Um diagrama de atividades
modela o fluxo de trabalho (também chamado atividade) de uma parte de um
sistema de software.
• Os diagramas de atividades são compostos de símbolos — como símbolos de
estado de ação, losangos e pequenos círculos — que são conectados por setas de
transição, as quais representam o fluxo da atividade.
slide 6 © 2016 Pearson. Todos os direitos reservados.
Estruturas de controle
• Os estados de ação contêm expressões de ação que especificam determinadas
ações a ser realizadas.
• As setas em um diagrama de atividades representam transições, que indicam a
ordem em que ocorrem as ações representadas pelos estados da ação.
slide 7 © 2016 Pearson. Todos os direitos reservados.
Estruturas de controle
• O círculo sólido localizado na parte superior de um diagrama de atividade
representa o estado inicial da atividade.
• O círculo sólido cercado por um círculo vazio que aparece na parte inferior do
diagrama representa o estado final.
• Os retângulos com o canto superior direito dobrados são notas da UML —
observações explicativas que descrevem o objetivo dos símbolos no diagrama.
slide 8 © 2016 Pearson. Todos os direitos reservados.
Estruturas de controle
• O Java tem três tipos de instruções de seleção:
✔ A instrução de seleção única if escolhe ou ignora uma ou mais ações.
✔ A instrução de seleção dupla if…else seleciona entre duas ações ou grupos
de ações.
✔ A instrução switch é chamada de instrução de seleção múltipla, uma vez que
seleciona entre muitas ações diferentes (ou grupos de ações).
slide 9 © 2016 Pearson. Todos os direitos reservados.
Estruturas de controle
• As instruções de repetição while, do…while e for (também chamada iteração
ou loop) permitem que programas executem instruções repetidamente enquanto
uma condição de continuação de loop permanece verdadeira.
• As instruções while e for realizam a(s) ação(ões) no seu zero de corpos ou mais
horas — se a condição de continuação do loop for inicialmente falsa, a(s) ação(ões)
não serão executadas.
• A instrução do…while realiza a(s) ação(ões) no seu corpo uma ou várias horas.
slide 10 © 2016 Pearson. Todos os direitos reservados.
Estruturas de controle
• As instruções de controle de entrada única/saída única são anexadas uma a outra
conectando o ponto de saída de uma instrução ao ponto de entrada da instrução
seguinte. Isso é conhecido como empilhamento de instruções de controle.
• Uma instrução de controle também pode ser aninhada dentro de outra instrução
de controle.
slide 11 © 2016 Pearson. Todos os direitos reservados.
A instrução de seleção
única if
• Os programas utilizam instruções de seleção para escolher entre cursos
alternativos de ações.
• O diagrama de atividade da instrução if de seleção única contém o símbolo de
decisão – o losango – , que indica que uma decisão deve ser tomada.
• O fluxo de trabalho segue um caminho determinado pelas condições de guarda
associadas do símbolo.
slide 12 © 2016 Pearson. Todos os direitos reservados.
Instrução de seleção
dupla if…else
• A instrução if de seleção única só realiza uma ação indicada quando a condição
for true.
• A instrução de seleção dupla if...else executa uma ação quando a condição
é verdadeira e outra ação quando a condição é falsa.
• Um programa pode testar múltiplos casos com instruções if…else aninhadas.
slide 13 © 2016 Pearson. Todos os direitos reservados.
Instrução de seleção
dupla if…else
• O efeito de um erro de lógica ocorre em tempo de execução.
• Um erro fatal de lógica faz com que um programa falhe e finalize prematuramente.
• Um erro de lógica não fatal permite a um programa continuar a executar, mas faz
com que produza resultados incorretos.
slide 14 © 2016 Pearson. Todos os direitos reservados.
Instrução de
repetição while
• Um símbolo de decisão contém uma seta de transição apontando para o losango
e duas ou mais setas de transição apontando a partir do losango para indicar
possíveis transições a partir desse ponto.
• Cada seta de transição que sai de um símbolo de decisão tem uma condição de •
guarda.
slide 15 © 2016 Pearson. Todos os direitos reservados.
Instrução de
repetição while
• Um símbolo de agregação contém duas ou mais setas de transição apontando para
o losango e somente uma seta de transição apontando a partir do losango, para
indicar a conexão de múltiplos fluxos de atividades a fim de continuar a atividade.
• Nenhuma das setas de transição associadas com um símbolo de agregação contém
uma condição de guarda.
slide 16 © 2016 Pearson. Todos os direitos reservados.
Instrução de
repetição while
slide 17 © 2016 Pearson. Todos os direitos reservados.
Formulando algoritmos:
repetição controlada
por contador
• A repetição controlada por contador:
✔ utiliza uma variável chamada contador (ou variável de controle) para controlar
o número de vezes que um conjunto de instruções é executado.
✔ costuma ser chamada de repetição definida, porque o número de repetições é
conhecido antes de o loop começar a executar.
slide 18 © 2016 Pearson. Todos os direitos reservados.
Formulando algoritmos:
repetição controlada
por sentinela
• Na repetição controlada por sentinela, um valor especial chamado de valor de
sentinela (também chamado de valor de sinal, valor fictício ou valor de flag) é
utilizado para indicar o “fim da entrada de dados”.
• Deve-se escolher um valor de sentinela que não possa ser confundido com um
valor aceitável de entrada.
slide 19 © 2016 Pearson. Todos os direitos reservados.
Formulando algoritmos:
repetição controlada
por sentinela
• O refinamento passo a passo de cima para baixo é essencial para o
desenvolvimento de programas bem estruturados.
• A divisão por zero é um erro de lógica.
• Para realizar um cálculo de ponto flutuante com valores inteiros, faça a coerção
(conversão) de um dos números inteiros para o tipo double.
slide 20 © 2016 Pearson. Todos os direitos reservados.
Formulando algoritmos:
repetição controlada
por sentinela
• O Java sabe como avaliar somente expressões aritméticas nas quais os tipos dos
operandos são idênticos. Para assegurar isso, o Java realiza uma operação chamada
promoção em operandos selecionados.
• O operador de coerção unário é formado colocando-se parênteses em torno do
nome de um tipo.
slide 21 © 2016 Pearson. Todos os direitos reservados.
Operadores de
atribuição compostos
• Os operadores de atribuição compostos abreviam expressões de atribuição.
Instruções da forma variável = variável operador expressão;
em que operador é um dos operadores binários +, - *, / ou %, podem ser
escritas na forma variável operador= expressão;
• O operador += adiciona o valor da expressão à direita do operador ao valor da
variável à esquerda do operador e armazena o resultado na variável à esquerda do
operador.
slide 22 © 2016 Pearson. Todos os direitos reservados.
Operadores de
atribuição compostos
slide 23 © 2016 Pearson. Todos os direitos reservados.
Operadores de incremento
e decremento
• O operador de incremento unário, ++, e operador de decremento unário, ––,
adicionam 1 ao, ou subtraem 1 do valor de uma variável numérica.
• O operador de decremento ou incremento que é prefixado a uma variável é o
operador de incremento de prefixo ou decremento de prefixo, respectivamente.
slide 24 © 2016 Pearson. Todos os direitos reservados.
Operadores de incremento
e decremento
• O operador de incremento ou decremento que é pós-fixado a uma variável é o
operador de incremento pós-fixo ou decremento pós-fixo, respectivamente.
• Utilizar o operador de pré-incremento ou pré-decremento para adicionar ou
subtrair 1 é conhecido como pré-incrementar ou pré-decrementar, respectivamente.
slide 25 © 2016 Pearson. Todos os direitos reservados.
Operadores de incremento
e decremento
slide 26 © 2016 Pearson. Todos os direitos reservados.
Operadores de incremento
e decremento
slide 27 © 2016 Pearson. Todos os direitos reservados.
Tipos primitivos
• O Java requer que todas as variáveis tenham um tipo. Assim, o Java é conhecido
como uma linguagem fortemente tipada.
• O Java utiliza caracteres de Unicode e números de ponto flutuante IEEE 754.
slide 28 © 2016 Pearson. Todos os direitos reservados.