Respostas
Gabarito Comentado: Lista de Exercícios de Estruturas Condicionais
Fundamentos: if, else if, else
Nesta seção, focamos no trio essencial para tomar decisões no código.
1. Pode votar?
Crie um programa que diga se uma pessoa pode votar com base na idade (idade mínima para votar: 16).
Gabarito Comentado:
// 01_pode_votar.js
let idade = 20; // Altere este valor para testar
if (idade >= 16) {
// A condição (idade >= 16) verifica se a idade é maior ou igual a 16.
// Se for 'true', este bloco é executado.
console.log("Você pode votar!");
} else {
// Se a condição for 'false', o bloco 'else' é executado.
console.log("Você ainda não pode votar.");
}💡 Dica: Este é o uso mais clássico do if/else. Temos uma condição e duas respostas possíveis: uma para o caso verdadeiro e outra para o falso.
2. Par ou Ímpar?
Peça um número e diga se ele é par ou ímpar.
Gabarito Comentado:
🧠 Como o computador pensa: O segredo aqui é o operador % (módulo). Ele é perfeito para descobrir se um número é divisível por outro.
3. Nota de aprovação
Dada uma nota entre 0 e 10, diga se o aluno foi aprovado (nota maior que 7), em recuperação (nota entre 5 e 7), ou reprovado (menor que 5).
Gabarito Comentado:
⚠️ Atenção: A ordem do if/else if é crucial! Se invertêssemos e testássemos nota >= 5 primeiro, um aluno com nota 8 seria considerado "em recuperação", pois 8 também é maior que 5. O código pararia na primeira condição verdadeira.
4. Pode dirigir?
Crie um programa que diga se a pessoa pode dirigir com base na idade (≥ 18).
Gabarito Comentado:
💡 Dica: Similar ao exercício de votação, este reforça a estrutura if/else para uma verificação simples de idade.
5. Temperatura do dia
Dada a temperatura, mostre mensagens específicas.
Gabarito Comentado:
🧠 Como o computador pensa: O else if é eficiente aqui. O programa só avalia a segunda condição se a primeira for falsa, criando uma lógica de funil.
🔁 Praticando com situações do dia a dia
Aqui, aplicamos a lógica em cenários mais concretos.
6. Verificar login
Verifique se o usuário e a senha estão corretos. Use
===.
Gabarito Comentado:
✅ Boas práticas: Usar === (igualdade estrita) previne erros de conversão de tipo. Comparar "123" com 123 com === resulta em false, o que é mais seguro.
7. Promoção de cinema
Defina o preço da entrada com base na idade.
Gabarito Comentado:
🔗 Lógica combinada: O operador && (E) é perfeito para verificar se um valor está dentro de um intervalo.
8. Desconto em loja
Dê desconto com base no tipo de cliente.
Gabarito Comentado:
💡 Dica: Este é um ótimo candidato para ser reescrito com switch, como veremos mais à frente. O if/else if funciona perfeitamente para comparar strings.
9. Cálculo de Frete (Novo)
Crie uma lógica para uma loja online. O frete é grátis se o valor da compra for superior a R$ 150,00 ou se o cliente for assinante "premium". Caso contrário, o frete deve ser cobrado.
Gabarito Comentado:
🧠 Como o computador pensa: O segredo aqui é o operador || (OU). Ele é perfeito para situações onde existem múltiplos caminhos para se chegar a um mesmo benefício. Diferente do && (E), que exige que todas as condições sejam verdadeiras, o || precisa que apenas uma delas seja.
🧼 Código limpo: Como isClientePremium já é um valor booleano (true ou false), poderíamos simplificar a condição para if (valorCompra >= 150 && isClientePremium). O === true é redundante, mas deixei para fins didáticos.
10. Dia da semana útil ou fim de semana?
Use
.toLowerCase()eswitch.
Gabarito Comentado:
🎯 O poder do switch: Note como agrupamos vários case para a mesma saída. Isso deixa o código muito mais limpo do que um if com múltiplas condições || (OU).
🎯 Aprimorando com operadores lógicos e ternário
Vamos refinar nosso código para ser mais conciso e elegante.
11. Mensagem personalizada
Use o operador ternário para uma mensagem simples.
Gabarito Comentado:
⚡ Ternário em ação: Ideal para atribuições condicionais simples. Em uma única linha, definimos o valor da variável mensagem.
12. Bateria do celular
Uma cadeia
if/else ifclássica.
Gabarito Comentado:
💡 Dica: Esse exercício é idêntico ao da temperatura e ao da nota. A estrutura é a mesma, só mudam os valores e as mensagens. Isso mostra como a mesma lógica se aplica a problemas diferentes.
13. Verificar presença em aula
Duas condições que precisam ser verdadeiras.
Gabarito Comentado:
🔗 Lógica combinada: O && (E) é essencial aqui. Não adianta ter boa nota com baixa frequência, e vice-versa. As duas condições devem ser satisfeitas.
14. Semáforo
Use
switchpara múltiplas opções de igualdade.
Gabarito Comentado:
🎯 switch vs. if: Este problema poderia ser resolvido com if/else if, mas o switch é mais legível e expressa melhor a intenção: comparar uma única variável contra múltiplos valores possíveis.
15. Ternário simples
Decisão rápida em uma linha.
Gabarito Comentado:
⚡ Eficiência: O operador ternário brilha em situações como esta, onde você precisa de uma string ou valor simples baseado em uma única condição.
🧠 Desafios com boas práticas e lógica combinada
Hora de juntar tudo e escrever código de profissional!
16. Comparação de tipos
Teste as diferenças entre
==e===.
Gabarito Comentado:
✅ Boas práticas: Use sempre === para evitar surpresas com a conversão automática de tipos do JavaScript. É mais seguro e previsível.
17. Verificação aninhada
Um
ifdentro de outroif.
Gabarito Comentado:
🪺 Aninhamento: Útil quando uma verificação só faz sentido se uma condição anterior já foi atendida.
18. Reduzindo código com operadores lógicos
Reescreva o código aninhado usando
&&.
Gabarito Comentado:
🧼 Código limpo: Usar && em vez de ifs aninhados torna o código menos verboso e mais fácil de ler, desde que a lógica não seja excessivamente complexa.
19. Conversão de letras maiúsculas/minúsculas
Use
.toLowerCase()comswitch.
Gabarito Comentado:
🛠️ Robustez: Normalizar a entrada do usuário (como converter para minúsculas) é uma prática fundamental para criar programas que não quebram com pequenas variações de digitação.
20. Calculadora de IMC
Calcule o IMC e classifique o resultado.
Gabarito Comentado:
🧠 Lógica sequencial: Assim como nos exercícios de nota e temperatura, a cadeia if/else if/else funciona como um filtro. Cada condição só é testada se as anteriores falharam, o que nos permite checar os intervalos de forma simples e eficiente.
Atualizado

