Calculadora de frete
Sistemas de frete usam regras diferentes por estado e peso, como em e-commerces. Você precisa comparar textos (siglas de estado) sem depender de tipagem fraca, e o erro de usar == em vez de equals() é frequente em código real. Dominar essa combinação evita bugs silenciosos em validações de localização.
O PROBLEMA
Peso e estado. SP R$5/kg, RJ R$8/kg, outros R$12/kg. Grátis >R$100.
EXEMPLO
5kg, SP → R$25 15kg, RJ → Grátis!
SOBRE O CONCEITO
O exercício usa if aninhados com equals() para decidir o valor do frete. O erro comum == compara referências de objeto, não o conteúdo textual — por exemplo, "SP" == "SP" pode funcionar em literais, mas falha ao comparar com uma variável vinda do Scanner. O correto é estado.equals("SP"). O toUpperCase() normaliza a entrada para evitar diferenças de maiúsculas/minúsculas. A regra de frete grátis para compras acima de R$100 obriga o cálculo antes da decisão, integrando lógica de valor total com condição de estado.
RESOLUÇÃO