Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Minha solução Questão Dia Util

Scanner scanner = new Scanner(System.in);

    System.out.println("Entre com o dia:");
    var diaUser = scanner.nextLine().toUpperCase();

    boolean valido = false;

    for (DiasDaSemana dia : DiasDaSemana.values()) {
        if (dia.name().equalsIgnoreCase(diaUser)) {
            valido = true;
            break;
        } else {
            throw new RuntimeException("Dia da semana inválido");
        }
    }

    if (valido) {
        System.out.println(diaUser + " é um dia útil");
    } else {
        System.out.println(diaUser + " não é um dia útil");
    }```

""public enum DiasDaSemana {

    SEGUNDA,
    TERCA,
    QUARTA,
    QUINTA,
    SEXTA

}""
1 resposta
solução!

Oi, Gabriel! Como vai?

Percebi que você usou um for para verificar os dias válidos, mas o uso do throw dentro do for interrompe a verificação logo na primeira iteração. Isso faz com que o código sempre lance exceção se o primeiro dia não for o informado pelo usuário.

Uma dica interessante para o futuro é usar o método valueOf() do enum, tratando possíveis exceções. Veja este exemplo:


Scanner scanner = new Scanner(System.in);

System.out.println("Entre com o dia:");
String diaUser = scanner.nextLine().toUpperCase();

try {
    DiasDaSemana dia = DiasDaSemana.valueOf(diaUser);
    System.out.println(dia + " e um dia util");
} catch (IllegalArgumentException e) {
    System.out.println(diaUser + " nao e um dia util");
}

Esse código tenta converter o texto diretamente em um valor do enum, e mostra mensagem adequada caso não seja válido.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!