2. Comandos de
seleção● Como vimos anteriormente, são utilizados para tomadas de
decisões;
● Desvia o fluxo do programa para uma determinada sequência de
comandos;
● Conforme a análise de uma expressão lógica, o fluxo do
programa é alterado ou não;
● Podem ser Simples ou Composto;
● Utilizamos dois comandos para esta finalidade:
– if
– swich
– Operador ternário ?:
3. Comando if
●
O comando if simples é estruturado como segue:
– if (<expressão-lógica>) <comando>;
– if (<expressão-lógica>)
<comando>;
● Caso a expressão em <expressão-lógica> retornar 1 (ou
qualquer valor diferente de 0), o <comando> é executado.
● Caso a expressão em <expressão-lógica> retornar 0, o
<comando> não é executado. O fluxo passará para o
comando após o if.
●
Note que o <comando> pode ser formado apenas por uma
instrução, terminada por “;”.
5. Comando if
● O comando if permite a execução de um
determinado bloco de comandos.
● Para isto deve-se construir o bloco com
o uso de chaves ({ … }):
if (<expressão-lógica>)
{
<bloco de comandos>
}
6. Comando if
● Caso a expressão lógica (<expressão-
lógica>) retorne um valor diferente de 0, a
sequência dentro das chaves será
executada.
● Caso a expressão lógica (<expressão-
lógica>) retorne um igual a 0, o bloco não
é executado, passando a execução para
o que vem após o bloco.
8. Comando if
● O comando de seleção com duas vias
é feito com a palavra else.
if (<expressão-lógica>){
<seqüência-de-comandos-1>
}
else {
<seqüência-de-comandos-2>
}
9. Comando if
● O uso ou não de chaves
determina se a via do comando
else executa apenas um
comando ou vários comandos.
11. Comando if encadeado
● É utilizado quando várias condições
poderão ser testadas.
● É utilizado quando se deseja executar
após o teste de uma condição anterior.
● Cada teste é executado por vez. Quando
um deles é verdadeiro, apenas o bloco
referente a este teste é executado.
12. Comando if encadeado
if (<expressão-lógica-1>){
<seqüência-de-comandos-1>
}
else if (<expressão-lógica-2>){
<seqüência-de-comandos-2>
}
else if (<expressão-lógica-3>) {
<seqüência-de-comandos-3>
}
. . .
[else{
<seqüência-de-comandos-n>
}]
13. Comando if encadeado
● A execução será feita
seqüencialmente. Se a <expressão-
lógica-1> for verdadeira a
<seqüência-de-comandos-1> é
executada pelo programa. O fluxo de
execução retornará para a próxima
instrução abaixo desse comando if.
14. Comando if encadeado
● Se a <expressão-lógica-1> for
falsa o programa avaliará a
próxima instrução eles if do
comando if expandido. Neste
caso, a expressão a ser avaliada
será <expressão-lógica-2>.
15. Comando if encadeado
● Este processo se repetirá até
que encontre uma expressão
lógica que seja verdadeira ou
encontre o comando else, caso
seja especificado.
16. Comando if encadeado
● É utilizado quando várias condições
poderão ser testadas.
● É utilizado quando se deseja executar
após o teste de uma condição anterior.
● Cada teste é executado por vez. Quando
um deles é verdadeiro, apenas o bloco
referente a este teste é executado.
18. Comando switch
● É útil quando o valor analisado na
expressão lógica possui diversos
valores possíveis.
● É semelhante ao comando
ESCOLHA do portuguol e a seleção
de múltiplas vias do fluxograma.
19. Comando switch
● A sintaxe é:
switch (<expressão>){
case <valor>: [<comandos>]
[break;]
case <valor>: [<comandos>]
[break;]
…
default: [<comandos>]
[break;]
}
20. Comando switch
● Apenas uma expressão por case
pode ser enunciada.
● O comando break serve para
encerrar estruturas de controle.
– No caso do comando switch,
desviando o fluxo do programa para o
fim de seu bloco.
21. Comando switch
● A ausência do comando break
fará com que o fluxo do programa
prossiga executando os
comandos declarados dentro dos
cases seguintes.
– Trampolins, piscina e portais
dimensionais.
23. Operador
ternário ?:● O operador ternário ?: é utilizado para pequenas
expressões de atribuição que envolvam seleção.
● O nome ternário significa que o operador possui
três argumentos:
– A expressão lógica;
– O valor retornado caso a expressão lógica seja
verdadeira;
– O valor retornado caso ela seja falsa.
24. Operador
ternário ?:
● Sintaxe:
– (<expressão lógica>)?<expressão-
1>:<expressão-2>;
● Caso a <expressão lógica> antes do
símbolo “?” for verdadeira, o valor da
<expressão-1> será retornado.
● Caso contrário, o valor de <expressão-2>
será retornado.
26. Exercícios
● Utilizando o comando if:
1) Faça um programa para ler um número inteiro e informar
se o número é par ou ímpar. Utilize a função o operador %.
2) Faça um programa para ler as três notas de uma aluno e
imprima se o mesmo foi aprovado ou reprovado. Adote a
média aritmética e média para aprovação maior ou igual 7,0.
3) Faça um programa para ler três valores reais e informar
se estes podem ou não formar os lados de um triângulo e
qual tipo de triângulo seria: equilátero, isóceles ou escaleno.
27. Exercícios
● Utilizando o comando if:
4) Faça um programa que leia o número de
eleitores de um município, o número de votos
brancos, nulos e válidos. Calcule o percentual que
cada um representa em relação ao total de
eleitores. Ao final, o programa deve:
– Imprimir o percentual de votos branco, nulos e válidos;
– Se a soma de votos nulos mais votos brancos for maior
que votos válidos, informar que a eleição foi cancelada.
28. Exercícios
● Utilizando o comando if:
5) A jornada de trabalho semanal de um funcionário
é de 44 horas. O funcionário que trabalhar mais de
44 horas receberá hora extra, cujo cálculo é o valor
da hora regular com um acréscimo de 30%.
Escreva um programa que leia o número de horas
trabalhadas em um mês, o salário por hora e
escreva o salário total do funcionário, que deverá
ser acrescido das horas extras, caso tenham sido
trabalhadas.
29. Exercícios
●
Utilizando o comando switch:
6) Faça um programa para ler valores inteiros em duas variáveis
distintas e:
– Se o resto da divisão da primeira pela segunda for 1 mostre a soma
dessas variáveis mais o resto da divisão;
– Se o resto da divisão da primeira pela segunda for 2 escreva se os
valores lidos são pares ou ímpares
– Se o resto da divisão da primeira pela segunda for igual a 3, multiplique
a soma dos valores lidos pelo primeiro;
– Se o resto da divisão da primeira pela segunda for igual a 4, divida a
soma dos números lidos pelo segundo;
– Em qualquer outra situação mostre o quadrado dos números lidos.
30. Exercícios
●
Utilizando o comando switch:
7) Faça um algoritmo que receba a idade de um nadador e
mostre a sua categoria usando as regras a seguir:
– Categoria Idade
– Fraldinha: até 4 anos
– Dentinho: 5 anos
– Infantil: de 6 a 7 anos
– Juvenil: de 8 a 12 anos
– Adolescente: de 13 a 17 anos
– Adulto: de 18 a 30 anos
– Sênior: acima de 30
31. Exercícios
● Usando o operador ternário ?::
8) Faça um programa que leia um número e
retorne o módulo deste número.
9) Faça um programa que leia dois pontos
no espaço bidimensional e encontre a
distância dada pela fórmula a seguir:
d(A,B) = |xA – xB| + |yA – yB|
32. Exercícios
● Usando o operador ternário ?::
10) Escreva um algoritmo que leia os coeficientes a, b e c de uma
equação do segundo grau da forma:
ax2 + bx + c = 0
E escreva na tela as raízes desta equação. Lembrando que
∆ = b2 – 4ac
e:
Caso ∆ seja menor que 0, deve-se escrever na tela que sua equação não
possui soluções reais.
a
b
x
2