Oii, Leandro.
Analisando o seu código, percebi um detalhe importante que pode causar um comportamento inesperado no sistema.
No caso do status "aprovado", você esqueceu de incluir a instrução break. Sem ela, o JavaScript continua executando o código do próximo bloco (o case "recusado") mesmo que a condição já tenha sido atendida. Isso é conhecido como fall-through.
O que acontece no seu código atual?
Se a variável status for "aprovado", o console exibirá:
pagamento aprovadopagamento recusado (porque não houve interrupção)
Código ajustado:
Um dica para garantir que apenas uma mensagem apareça por vez:
let status = "aprovado";
switch (status) {
case "pendente":
console.log("Pagamento pendente");
break;
case "aprovado":
console.log("Pagamento aprovado");
break; // Adicionado para interromper a execução aqui
case "recusado":
console.log("Pagamento recusado");
break;
default:
console.log("Status desconhecido");
}
Por que o break é necessário?
Pense no switch como um corredor com várias portas. Quando você encontra a porta certa ("aprovado"), você entra. O break funciona como a saída desse corredor. Se você não sai, acaba passando por dentro da próxima sala ("recusado") sem querer.
Continue firme nos estudos.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!