Unidade 04 - Estruturas de Decisão
Unidade 04 - Estruturas de Decisão
Unidade 04 - Estruturas de Decisão
E se…?
Você já percebeu que constantemente nos fazemos perguntas como:
Como no caso de chuva, se for chover, com certeza você não vai querer se molhar, e irá
levar um guarda-chuva ou uma capa para se proteger. Mas, se porventura fizer aquele
solzão, você não vai querer ficar andando por aí com o guarda chuva à toa!
1
Estudar as estruturas condicionais será importante para desenvolver nossos futuros
códigos, pois essas estruturas permitem que o nosso código esteja preparado para
executar ações diferentes, com base na escolha do usuário!
A partir desse módulo, iremos te apresentar como criar em condições com Javascript,
e adicionar mais um recurso às nossas habilidades.
2
Estruturas de Decisão
Condicional IF - simples
Vamos ver como funciona esse “se...”
O conceito de estruturas condicionais é muito útil na programação. Sem ele nosso
código executa sempre da mesma forma, tem sempre o mesmo resultado, e dessa
maneira, nós não conseguimos criar muitas soluções. Com as estruturas condicionais,
podemos escrever trechos de código que só serão executados caso passem por uma
verificação.
if ( condição ) {
3
Situação Problema 1:
Um grupo de amigos resolveu que toda quarta-feira é dia de feijoada! E para lembrar a
todos desse momento festivo, resolveram criar um algoritmo que verifica em qual dia
da semana estamos.
“Se hoje for quarta-feira”, significa que é dia de Feijoada! E o algoritmo precisa emitir
uma mensagem informando isso.
Observe que o fluxo é bem simples, contínuo, e que para o programa conseguir ser
executado completamente, a resposta para a pergunta feita precisa ser verdadeira!
Vamos reescrever esse fluxograma em Portugol para entender como se constrói essa
estrutura condicional IF. Para isso funcionar, precisamos armazenar o dia da semana
em uma variável do tipo caracter, e depois verificar se o dia corresponde ao que
buscamos, como mostrado no exemplo a seguir:
4
Agora, vamos passar esse código para o Javascript! Aqui temos a variável
diaDaSemana (que em JavaScript não precisa ter o seu tipo definido) e logo abaixo,
um exemplo de condição utilizando IF.
if (diaDaSemana == "quarta-feira") {
console.log("Hoje é dia de feijoada!")
}
Caso a variável tenha um valor diferente do esperado, o código que está entre as
chaves será ignorado, e a execução continua na linha após o fechamento das chaves.
Situação Problema 2:
Um Professor precisa automatizar os resultados dos alunos referente às avaliações
que foram realizadas no final do curso e pediu nossa ajuda para criar um algoritmo que
calcule a média de duas notas e informe se o aluno foi aprovado ou não! Vamos
analisar essa situação através da construção de um Fluxograma:
5
De acordo com o diagrama, vimos que o fluxo também é contínuo, mas nesse caso,
temos duas verificações: Se média menor que sete (media < 7) e se média maior ou
igual a sete (media >= 7).
Porém, em caso de a condição não ser atendida, o programa “pula” o trecho de código
correspondente e o fluxo segue normalmente.
6
No código em Portugol, simulamos as notas 8 e 6, resultando na média 7. Nesse caso,
o aluno foi “aprovado”. Observe que o programa “ignorou” o trecho de código da linha
15, pois a condição (media < 7) não foi atendida!
E como será que escrevemos esse mesmo código utilizando o JavaScript? Será que é
muito diferente do que já vimos? Vejamos:
Ao executar esse código, você provavelmente verá uma caixa de diálogo solicitando os
dados de entrada (nota1 e nota2), em seguida, poderá ver o resultado no console.
7
Exercícios
IF - simples
1. Precisamos de um código que verifique a idade do usuário para ver se já tem
idade mínima para adquirir carta de habilitação. Para isso, teremos uma variável
nome que guarda um valor do tipo string, e uma variável idade que guarda um
valor do tipo numérico.
2. Você foi contratado por um parque de diversões para criar um sistema que
mostre se seus usuários estão gostando da nova montanha russa. Crie uma
variável chamada notasUsuarios que receberá um valor do tipo numérico.
Agora crie um código que imprima na tela os textos:
● “Excelente” para notas entre 9 e 10,
● “Muito bom” para notas entre 6 e 8
● “Não Gostei” para notas Menores que 5
8
Estruturas de Decisão
Você deve ter percebido que quando fazemos um IF simples, quando a condição
retorna verdadeiro, é executado o bloco de código que está dentro das chaves do IF.
Caso a condição retorne “falso”, o programa apenas “ignora” as linhas dentro do bloco
do IF e segue o fluxo normal.
Mas, e se o resultado da condição for falso, podemos definir algum comando para essa
situação também? Sim! Para isso usamos o comando ELSE (do inglês senão).
9
Situação Problema 3:
O Departamento de Trânsito da sua cidade procurou você para criar um algoritmo que
receba do usuário a sua idade e retorne como resposta a informação se o mesmo pode
ou não dirigir. Sabendo que a idade mínima para solicitar a carteira de motorista é 18
anos. Vejamos essa aplicação em um exemplo com um fluxograma:
10
Vejamos como seria a saída caso o usuário digite 21 anos ou 15 anos:
Como o valor da variável idade é 17, e a condição é que a idade seja maior ou igual a
18, a afirmação é falsa, ou seja, ele vai ignorar o primeiro bloco de código (linha 4) e
entrar no ELSE, que tem outro bloco de código (linha 6).
Sintaxe IF ELSE
O comando ELSE vem para complementar nossa estrutura do IF. Por via de regra,
podemos assumir que NUNCA haverá um ELSE sem que haja um IF antes, pois eles
se completam!
Veja que devemos colocá-lo logo após o fechamento de chaves do IF, e ele tem o
próprio bloco de código, também dentro de chaves:
if ( condição ) {
// código que será executada caso a condição seja verdadeira
} else {
// código que será executado caso a condição seja falsa
}
11
A utilização do ELSE é opcional e depende muito da forma como o programador pensa
a estrutura de resolução do problema. O ELSE vai sempre trazer um trecho de código
que deve ser executado como padrão, no caso da condição do IF não ser verdadeira.
Buscamos sempre desenvolver códigos que estejam preparados para cada uma das
probabilidades, de forma que deve existir um trecho de código que trata cada situação
possível.
Programar é criar soluções, o código é somente o meio, por isso, pense primeiro no
problema que precisa resolver, depois pense numa solução e identifique quais
ferramentas/comandos podem te ajudar no processo.
Situação Problema 4:
Vamos resgatar a Situação Problema 2, que envolve a criação de um algoritmo para
calcular a média de notas e informar a situação final do aluno. Porém, desta vez, iremos
criar uma Condicional utilizando o IF ELSE. Vejamos como isso ficaria no fluxograma:
12
Observe que, neste caso, o fluxo não será contínuo pois em um determinado
momento, quando tivermos o valor da média, o programa deve seguir por um caminho
ou outro, nunca ocorrerá de executar as duas opções.
Ou seja, se a média for menor que 7, o programa seguirá para o comando que imprime
“O aluno está reprovado!”, caso contrário, ele irá seguir para o comando que imprime
“O aluno está aprovado!”. Vejamos como tratar essa informação em Portugol:
13
Exercícios
IF ELSE - composto
1. Desenvolva um código que receba uma variável alturaPessoa que guarda um
valor do tipo numérico (decimal).
Caso a altura do usuário seja maior ou igual a 1.60cm, imprima na tela: ”Você
poderá pilotar o carro de F1!”
Se a altura for inferior a 1.70cm, imprima: “Você não tem a altura mínima para
pilotar esta máquina!”.
14
Estruturas de Decisão
Condicional IF ELSE IF
O que isso quer dizer? Vamos ver com calma.
Quantas coisas aprendemos até aqui certo?
Vimos que podemos verificar condições e atribuir ações que deverão ser feitas usando
o IF e, não só isso, caso essa primeira condição não seja verdadeira, podemos usar o
ELSE para atribuir uma ação padrão, cobrindo assim boa parte das situações.
if ( primeira condição ) {
} else {
Vamos analisar o que acabamos de falar com mais uma situação problema.
15
Situação Problema 5:
A Prefeitura da sua cidade ficou sabendo que você é programador e o procurou para
ajudá-los com um novo projeto! Eles pretendem instalar um semáforo no cruzamento
mais movimentado do seu bairro, mas precisam de algoritmo que faça os semáforos
funcionarem! Bom, primeiro precisamos pensar nos passos que envolvem esse
problema, e talvez, ao tentar simular um sistema usando as condicionais poderíamos
ter algo assim:
Tudo parece bem, certo? Mas, espere um pouco, um semáforo tem 3 cores, ou seja, 3
possibilidades e não apenas duas! Precisamos pensar na ação para o sinal amarelo
também, mas o que faremos? E é aqui que usamos o IF ELSE IF. Vamos ver como
ficaria o fluxograma do semáforo, agora com as 3 possibilidades:
16
Observe que a primeira possibilidade verificada é se o “sinal está verde”, e se isso for
verdadeiro, o programa imprimirá a frase “Pode seguir!”, caso contrário, ele irá para a
próxima verificação.
E por último, não precisamos abrir uma terceira possibilidade, pois “o sinal vermelho”
é a única alternativa possível depois de passar pelas outras verificações.
if (semaforo == 'Verde') {
console.log('Pode seguir!')
} else if (semaforo == 'amarelo') {
console.log('Atenção, o sinal irá fechar!')
} else {
console.log('Pare, e espere o sinal abrir')
}
17
PARA VOCÊ PENSAR: E se o usuário digitasse ou definisse qualquer outro valor
diferente “vermelho”, como nosso programa iria reagir? Existe alguma forma mais
eficiente de montarmos esse programa? Crie suas hipóteses e discuta com seus
colegas. Enquanto isso, vamos resolver outra situação juntos?
Situação Problema 6:
Precisamos construir uma calculadora simples, que consiga efetuar as operações
básicas de soma, subtração, multiplicação ou divisão, de acordo com a escolha do
usuário. Para que a calculadora funcione, o usuário precisa obter os dois valores iniciais
e a operação desejada. Vejamos como ilustrar essa situação em fluxograma:
Analisando o fluxograma, podemos perceber que existem 4 pontos onde o fluxo pode
sofrer desvios, dependendo de qual operador o usuário vai escolher. Podemos deduzir
também que, a cada execução do código, apenas um dos cálculos será executado,
“ignorando” os demais.
18
Esse fluxograma ficou um pouco maior que os outros não é mesmo? Mas não se
preocupe, pois utilizaremos fluxogramas e portugol somente nesta fase inicial,
enquanto você aprende as estruturas. Agora, o mesmo código em JavaScript:
19
Exercícios
IF ELSE IF - encadeamento
1. Você vai implementar uma melhoria em um sistema que consiste em dar dicas
aos usuários sobre o que fazer durante cada tipo de clima.
Para isso cria uma variável chamada temperaturaAgora que receberá um dado
do tipo numérico.
Para temperaturas entre 19 e 26, imprima: “Não esqueça seu óculos de sol”
2. Precisamos criar um código que ajude uma escola a dizer se o aluno conseguiu
atingir os objetivos na prova. E para isso eles deixaram para você as notas que
eles usam para fazer essa classificação:
7 a 10 = “Aprovado”
5 a 6 = “Reforço”
20
Estruturas de Decisão
Switch
E se tivéssemos várias possibilidades?
Sabemos que não podemos sempre resumir nossos códigos em apenas duas
possibilidades, e fazer isso utilizando as estruturas encadeadas IF ELSE IF, pode tornar
a codificação um pouco complexa. Por isso temos o Switch que irá executar diferentes
ações com base em diferentes condições (case).
Podemos ter uma ideia de como esse fluxo funciona em nossos sistemas com a figura
a seguir:
21
condições for correspondida, o resultado será verdadeiro e o código que está dentro
dela será executado, mas caso o resultado seja falso, ele “pula” para o próximo case e
analisa novamente a correspondência de valores. Pode acontecer de nenhum dos
cases retornar o resultado verdadeiro, levando o fluxo do programa para a cláusula
Default (padrão), que é o último case a ser executado e depois encerra o fluxo do
switch.
Situação Problema 7:
Um restaurante da sua cidade comprou um painel digital para recepcionar seus clientes
e informar qual o prato do dia, de acordo com o dia da semana! Todavia, o painel não
veio programado e você foi contratado para criar um algoritmo que faça o painel
funcionar de acordo com as regras a seguir:
■ Na segunda linha, deve ser exibido o prato principal do dia como segue:
22
Montamos um fluxograma para ilustrar esse cenário:
No modelo acima, vemos que após fazer a leitura do dia da semana, o programa
imprime o dia na primeira linha e depois entra numa sequência de avaliações que,
dependendo do dia escolhido, imprime o prato do dia!
Ao final de cada impressão, encontramos um conector que leva o fluxo para o final do
programa.
23
Vejamos um exemplo deste problema em Portugol:
24
Exercícios
SWITCH
1. Vamos desenvolver um sistema onde aparecerá alguns carros de determinado
fabricante à medida que o usuário o indica. Para isso crie uma variável
chamada fabricante que receberá um dado do tipo “string” e sem seguida
crie os seguintes casos:
25