1
resposta

Resolução

let status = "aprovado";

switch (status) {
    case "pendente":
        console.log("pagamento pendente")
        break;
    case "aprovado":
        console.log("pagamento aprovado")
    case "recusado":
        console.log("pagamento recusado")
        break;
    default:
        console.log("status desconhecido")
};
1 resposta

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á:

  1. pagamento aprovado
  2. pagamento 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údos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!