Buscar

6.Estruturas condicionais.pdf

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Estruturas condicionais
Prof. Bruno Nogueira
Até agora...
Estruturas condicionais2
} Vimos estruturas sequenciais de programas
} Consideramos sequências perfeitamente encadeadas
} Nenhuma decisão era preciso ser tomada
} Mas... Nem tudo é assim
} Em diversas situações, temos opções de caminhos a seguir nos
nossos códigos
} Precisamos avaliar as condições e tomar uma decisão
} Principalmente, quando lidamos com entrada do usuário
Estrutura sequencial x Estrutura condicional
Estruturas condicionais3
?
sim não
Exemplo
Estruturas condicionais4
} Vamos analisar o saldo da sua conta bancária. Se você tem
dinheiro aplicado na sua conta, então o banco te paga
uma pequena taxa de correção (rendimento). Por outro
lado, se você tem um saldo negativo em sua conta, então
o banco cobra de você uma taxa de juros e seu saldo fica
ainda mais negativo.
Exemplo
Estruturas condicionais5
} Vamos analisar o saldo da sua conta bancária. Se você tem
dinheiro aplicado na sua conta, então o banco te paga
uma pequena taxa de correção (rendimento). Por outro
lado, se você tem um saldo negativo em sua conta, então
o banco cobra de você uma taxa de juros e seu saldo fica
ainda mais negativo.
Saldo 
>= 0?
Saldo = Saldo –
(Multa * Saldo)
Saldo = Saldo + 
(Taxa * Saldo)
sim não
Comandos Se ... Então ... Senão
Estruturas condicionais6
} Vamos traduzir o bloco condicional
} Blocos condicionais têm a forma:
Saldo 
>= 0?
Saldo = Saldo –
(Multa * Saldo)
Saldo = Saldo + 
(Taxa * Saldo)
sim não
SE Condição é verdadeira
ENTÃO Faça ...
SENÃO
Faça...
SE Saldo >= 0
ENTÃO Saldo = Saldo + (Taxa * Saldo)
SENÃO
Saldo = Saldo – (Multa * Saldo)
Comandos Se ... Então ... Senão
Estruturas condicionais7
} Em linguagens de programação, tais comandos são
possíveis por meio dos blocos IF ... ELSE
SE Saldo >= 0
ENTÃO Saldo = Saldo + (Taxa * Saldo)
SENÃO
Saldo = Saldo – (Multa * Saldo)
if (saldo >= 0)
saldo = saldo + (taxa * saldo);
else
saldo = saldo – (multa * saldo);
Em Java
Comandos if ... else
Estruturas condicionais8
} Diretivas if e else são utilizadas, respectivamente para
fazer o teste lógico (if (TESTE)) e para especificar o
que deve ser feito se o teste falhar (else ...)
} Iniciam um novo escopo (nova indentação é
recomendada)
} É possível executar mais de um comando em if ou else
} Comandos simples: uma única linha de código a ser executada
} Comandos compostos: mais de uma linha de código é
necessária para especificar o que tem que ser executado
Comandos if ... else
Estruturas condicionais9
} Comandos simples x comandos compostos
if (saldo >= 0)
saldo = saldo + (taxa * saldo);
else
saldo = saldo – (multa * saldo);
if (saldo >= 0)
{
System.out.println(“Saldo positivo!”);
saldo = saldo + (taxa * saldo);
}
else
{
System.out.println(“Saldo negativo!”);
saldo = saldo – (multa * saldo);
}
Comandos simples não 
precisam de chaves.
Nesse caso, compilador 
considera que deve 
executar apenas a 
próxima linha.
Comandos compostos 
precisam de chaves 
para delimitar onde 
começa e onde termina 
o que precisa ser 
executado.
Comandos if ... else
Estruturas condicionais10
Comandos if ... else
Estruturas condicionais11
Executado se o saldo for >= 0
Executado se o saldo for < 0
Estruturas condicionais12
Estruturas condicionais13
Executado se o saldo for >= 0
Executado se o saldo for < 0
Comandos if ... else
Estruturas condicionais14
} Muito cuidado é necessário no uso das chaves!
} É “comum” nos esquecermos de usar chaves para delimitar o
bloco de comandos a ser executado
} Isso pode interferir diretamente nos resultados dos nossos
programas!
Estruturas condicionais15
Estruturas condicionais16
Somente isso é executado 
se Saldo < 0
Isso é executado SEMPRE. Gera resultados indesejados.
Comandos if ... else – Expressões booleanas
Estruturas condicionais17
} O teste de um comando if(Expressao) é sempre uma
expressão booleana
} Resultado dessa expressão pode ser somente verdadeiro ou
falso (true ou false)
} Exemplos:
if (saldo >= 0) ...
if (nota < 6) ...
if (temperatura == 60) ...
if (velocidade > velocidadeMaxima) ...
if (resultado != gabarito) ...
if (estaLigado == true) ...
Comandos if ... else – Expressões booleanas
Estruturas condicionais18
} Em expressões booleanas envolvendo valores de tipos
primitivos, usamos os operadores de comparação
Notação 
Matemática
Nome Notação 
Java
Exemplo
= Igual a == saldo == 0
resposta == ‘s’
≠ Não igual a != saldo != 0
resposta != ‘s’
> Maior que > saldo > 100
≥ Maior ou igual a >= nota >= 6
< Menor que < nota < minimo
≤ Menor ou igual a <= nota <= minimo
Comandos if ... else – Expressões booleanas
Estruturas condicionais19
} Comparações de Strings não usam esses operadores
} São de tipo classe
} A classe String nos dá dois métodos para comparar valores de
strings: equals() e equalsIgnoreCase()
String palavra1, palavra2;
...
if (palavra1.equals(palavra2))
System.out.println(“São iguais!”);
else
System.out.println(“São diferentes!”);
String palavra1, palavra2;
...
if (palavra1.equalsIgnoreCase(palavra2))
System.out.println(“São iguais!”);
else
System.out.println(“São diferentes!”);
O método equals retorna true se 
palavra1 e palavra2 tiverem 
EXATAMENTE o mesmo conteúdo
O método equalsIgnoreCase retorna 
true se palavra1 e palavra2 tiverem o 
mesmo conteúdo, independente de se 
escritos em maiúsculas e minúsculas
Estruturas condicionais20
Expressões booleanas complexas
Estruturas condicionais21
} Em alguns casos, queremos fazer mais de um teste
booleano em uma mesma expressão
} Podemos formar expressões mais complexas por meio da
união de expressões mais simples
} Exemplo:
} Imagine a situação em que você quer alertar um motorista se a
pressão do óleo do motor do carro dele está ou não correta.
Considera-se correta se a pressão do óleo estiver acima de uma
pressão mínima e abaixo de uma pressão máxima
if (Pressão Mínima < Pressão atual < Pressão Máxima)
ERRADO! Operadores de comparação só podem ser 
utilizados para comparar dois valores do mesmo tipo 
(numérico com numérico, lógico com lógico, ...)
Expressões booleanas complexas
Estruturas condicionais22
} Para combinar expressões simples, podemos usar os
operadores lógicos && (and, e) e || (or, ou)
} Sintaxe:
(SUB_EXPRESSÃO_1) && (SUB_EXPRESSÃO_2)
Resulta em true se SUB_EXPRESSÃO_1 E SUB_EXPRESSÃO_2 forem
verdadeiras (true)
(SUB_EXPRESSÃO_1) || (SUB_EXPRESSÃO_2)
Resulta em true se SUB_EXPRESSÃO_1 OU SUB_EXPRESSÃO_2
forem verdadeiras (true)
Expressões booleanas complexas
Estruturas condicionais23
} Exemplo:
} Imagine a situação em que você quer alertar um motorista se a
pressão do óleo do motor do carro dele está ou não correta.
Considera-se correta se a pressão do óleo estiver acima de
uma pressão mínima e abaixo de uma pressão máxima
if ((pressao > pressaoMinima) && (pressao < pressaoMaxima) )
System.out.println(“Pressão correta! Boa viagem!”);
else
System.out.println(“Pressão incorreta! Verifique o óleo!”);
Expressões booleanas complexas
Estruturas condicionais24
} Exemplo:
} Agora, você quer alertar um motorista se a velocidade em que
ele trafega não é permitida. Uma velocidade não é permitida se
ela é menor que a metade da velocidade máxima ou maior que
a velocidade máxima.
if ((velocidade < (velMaxima/2)) || (velocidade > velMaxima) )
System.out.println(“Velocidade incorreta!”);
else
System.out.println(“Velocidade correta! Boa viagem!”);
Negação (!)
Estruturas condicionais25
} Em Java, quando queremos negar uma expressão
booleana, basta precedermos a mesma com uma
exclamação!
} Uma expressão que teria valor true, quando negada, assume
valor false. De maneira análoga, uma expressão que teria valor
false, quando negada, assuma valor true
} Por exemplo, quando comparando duas strings:
String palavra1, palavra2;
if (palavra1.equals(palavra2))
System.out.println(“São iguais!”);
if (!palavra1.equals(palavra2))
System.out.println(“São diferentes!”);
Negação (!)
Estruturas condicionais26
} Da mesma forma, podemos fazer equivalências de
operadores de comparação utilizando o operador de
negação
Expressão Equivalente a
!( a < b) a >= b
!( a <= b) a > b
!( a > b) a <= b
!( a >= b) a < b
!( a == b) a != b
!( a != b) a == b
Exercício
Estruturas condicionais27
} Monte expressões booleanas em Java para os seguintes
testes
} Se a temperatura é maior ou igual a 37, então está com febre
} Se a temperatura é menor que 0, então neva
} Se o usuário não digitou o caractere ‘n’, então imprima a
mensagem na tela
} Se o salário é maior que as despesas ou as economias são
maiores que as despesas, então o saldo é positivo
} Se a ocupação é maior que a mínima e menor que a máxima,
então o teatro tem um público adequado
Comandos if ... else
Estruturas condicionais28
} O bloco else é opcional
} Quando omitido, o programa simplesmente ignora o comando
que if especifica, quando a expressão é falsa
Saldo 
>= 0?
Saldo = Saldo –
(Multa * Saldo)
Saldo = Saldo + 
(Taxa * Saldo)
sim não Saldo 
>= 0?
Saldo = Saldo + 
(Taxa * Saldo)
sim não
if (saldo >= 0)
saldo = saldo + (taxa * saldo);
else
saldo = saldo – (multa * saldo);
System.out.println(“Saldo: ” + saldo);
if (saldo >= 0)
saldo = saldo + (taxa * saldo);
System.out.println(“Saldo: ” + saldo);
Blocos if ... else aninhados
Estruturas condicionais29
} Um bloco if-else pode conter qualquer tipo de comandos
dentro dele mesmo
} Inclusive outro bloco if-else
} Neste caso, dizemos que temos blocos aninhados – um
dentro do outro
if (saldo >= 0)
{
if(taxa > 0)
saldo = saldo + (taxa * saldo);
}
else
saldo = saldo – (multa * saldo);
if (saldo >= 0)
if(taxa > 0)
saldo = saldo + (taxa * saldo);
else
saldo = saldo – (multa * saldo);
É possível usar com chaves ou sem chaves. A lógica é a mesma: caso haja 
comandos de mais de uma linha, as chaves são necessárias. Neste caso, os dois 
blocos de comando são idênticos semanticamente. Na dúvida, use as chaves!
Múltiplos blocos if ... else
Estruturas condicionais
} Às vezes, temos opções de bifurcação dentro da
bifurcação
?sim
não
?
?
?
nãosi
m
si
m
não
Múltiplos blocos if ... else
Estruturas condicionais31
} Múltiplos ramos if-else nos dão opção dentre diversas
ações
} Ações são mutuamente exclusivas: apenas uma é executada
} Geralmente, se coloca uma ação padrão, executada quando
todos os demais testes falham
if (Expressão_Booleana_1)
Ação 1
else if (Expressão_Booleana_2)
Ação 2
...
...
else if (Expressão_Booleana_n)
Ação n
else
Ação Padrão
Múltiplos blocos if ... else
Estruturas condicionais32
} Exemplo 1
} Exemplo 2
if (numero < 10)
System.out.println(“Número < 10”);
else if (numero < 50)
System.out.println(“Número >= 10 e < 50”);
else if (numero < 100)
System.out.println(“Número >= 50 e < 100”);
else
System.out.println(“Número >= 100”);
if (saldo < 0)
System.out.println(“Saldo Negativo!”);
else if (saldo > 0)
System.out.println(“Saldo Positivo!”);
else
System.out.println(“Saldo zerado!”);
Exercício
Estruturas condicionais33
} Crie um programa em Java que peça ao usuário para
digitar a temperatura atual e imprima as seguintes
mensagens:
} Se temperatura for menor que 0 ºC:“Brrr! Está congelando!”
} Se a temperatura for entre 0 e 15 ºC:“Ainda está frio!”
} Se a temperatura for entre 15 e 25 ºC:“Está esquentando!”
} Se a temperatura for maior ou igual a 25ºC: “Tempo de ir para
a praia!”
Exercício II
Estruturas condicionais34
} Faça um programa em Java que ofereça uma bebida
alcoólica ao usuário. Para isso, é necessário checar a idade
do mesmo. Se a idade for menor que 18 anos, ele não
pode fazer a solicitação. Caso contrário, exiba para ele a
lista de bebidas a seguir e peça para escolher. Após a
escolha, mostre na tela qual foi a bebida escolhida pelo
usuário.As opções são:
} Cerveja
} Whisky
} Vodka
} Caipirinha
} Tequila

Continue navegando