Oi Ian! Como vai?
Com base nas regras fornecidas, a lógica para calcular o frete para distâncias entre 5.1 km e 20 km é cobrar R$ 0,50 por quilômetro além dos 5 km iniciais.
No seu código, você está subtraindo 5 km da distância total e multiplicando o restante por 0,5, o que está correto. No entanto, parece que você está adicionando 5 ao resultado final, o que não é necessário, pois o frete para os primeiros 5 km já foi cobrado na condição anterior.
Vamos ajustar a função para que ela reflita corretamente as regras do exercício:
const frete = function(Km) {
if (Km <= 5) {
console.log('R$5');
} else if (Km > 20) {
console.log('R$20');
} else if (Km > 5 && Km <= 20) {
let calculaKm = (Km - 5) * 0.5;
console.log(`R$${calculaKm}`);
}
}
frete(18); // Deve imprimir R$6.5
Com essa alteração, a função calcula corretamente o frete para distâncias entre 5.1 km e 20 km, sem adicionar um valor fixo de 5. Espero que isso esclareça sua dúvida!
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.