Pular para o conteúdo
Cursos

DevClub

LógicaFront-endBack-endMobile

IA Club

IA na prática
Estudar programaçãoEstudar IA

Aula 3 de 6

Construa expressões, condições e casos de borda

Avalie operadores na ordem certa, transforme comparações em decisões e teste as bordas de uma política de desconto.

30 minutos · leitura + prática · nível iniciante

Ao terminar esta aula, você vai conseguir

  • Avaliar expressões pela precedência
  • Ordenar faixas condicionais sem sobreposição
  • Escolher casos abaixo, iguais e acima dos limites

Expressão combina valores e se reduz a um resultado; condição é uma expressão usada para escolher caminho. Nesta aula, você vai avaliar uma conta no papel e construir faixas de desconto que funcionam exatamente nos limites.

Pense numa escada. Cada degrau representa um requisito mínimo. Uma compra de R$ 2.000 também alcançou os degraus de R$ 100 e R$ 1.000, então a ordem da verificação decide qual regra vence. A analogia termina porque condições também podem ser independentes, não apenas faixas ordenadas.

Avalie a expressão em partes

Antes de JavaScript, numere subexpressões:

text
DADOS: preço 40, quantidade 5, desconto 30, frete 4,40
1. subtotal recebe preço vezes quantidade
2. metadeDoDesconto recebe desconto dividido por 2
3. parcial recebe subtotal menos metadeDoDesconto
4. final recebe parcial mais frete
5. INFORMAR final

O papel prevê 200, 15, 185 e 189,40. Multiplicação e divisão acontecem antes de soma e subtração. Parênteses podem tornar a regra explícita, mas não devem ser usados para perseguir um número sem requisito.

js
const preco = 40;
const quantidade = 5;
const desconto = 30;
const frete = 4.4;
const final = preco * quantidade - desconto / 2 + frete;

console.log(final);

No Node v26.3.0, a saída é 189.4. A execução confirma o rastreio. Agora mude somente a quantidade para seis, refaça o papel e compare.

Condições têm bordas

total > 100 e total >= 100 divergem exatamente em cem. Por isso cada limite pede três casos: imediatamente abaixo, igual e imediatamente acima. Para dinheiro em centavos, os casos de uma faixa de 10.000 são 9.999, 10.000 e 10.001.

Na política do laboratório, testar total >= 100 primeiro é um erro lógico. A compra de 2.000 entra nessa condição e retorna 5 antes de chegar a 15. O código compila, o resultado parece plausível e nenhum stack trace aparece. Somente uma tabela de bordas revela a sobreposição.

Teste 99, 100, 999, 1.000, 1.999 e 2.000. A sequência correta é 0, 5, 5, 10, 10 e 15. Não aceite testar apenas cem: a versão errada também passa esse caso.

Combine perguntas com cuidado

Uma regra de acesso pode exigir idade mínima e documento. Escreva as proposições separadas antes de usar &&. Se aceitar cupom ou assinatura, use ||. Parênteses registram agrupamento quando E e OU aparecem juntos.

O erro comum é escrever a negação de uma frase longa diretamente no código. Monte quatro linhas de tabela verdade, negue cada resultado e só depois aplique De Morgan. Clareza é parte da correção, porque condições difíceis de ler são difíceis de testar.

Na missão, escreva primeiro as faixas em português, depois os seis casos e por último o JavaScript. O critério de conclusão não é “mostrou um desconto”; é cada borda cair na faixa prevista e você explicar por que a condição mais restritiva aparece primeiro. Na próxima aula, repetiremos regras sem copiar código.

Guarde as previsões junto da execução para poder refazer a comparação depois.

Laboratório ao vivo

Política de desconto nas bordas

Leia o pseudocódigo comentado e teste os seis totais. Corrija a ordem das condições caso compras altas recebam a menor faixa.

Pronto para testar
Resultado

Pare e pense

Por que a faixa de 2.000 deve ser testada antes da faixa de 100?

Escolha uma resposta
Missão da aula

Faça sem copiar

Crie uma regra de frete com limites em 80 e 150, teste um valor abaixo, igual e acima de cada limite e explique cada resultado.

Fontes para consultar

Terminou a missão?

Marque apenas quando você conseguir explicar o conceito e concluir o desafio. O progresso fica salvo somente neste navegador.

Próxima: Repita com laços, contadores e acumuladores →