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

[Projeto] Minha solução Controle de acesso

public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);

    var codigoAcesso = 2023;
    List<Integer> listaDeAcesso = Arrays.asList(1, 2, 3);

    System.out.println("Digite o código de acesso:");
    var codigo = scanner.nextInt();

    System.out.println("Digite o nível de permissão:");
    var nivelDeAcesso = scanner.nextInt();

    if (codigo == codigoAcesso && listaDeAcesso.contains(nivelDeAcesso)) {
        System.out.println("Acesso permitido. Bem-vindo ao sistema!");
    } else {
        System.out.println("Acesso negado!");
        if (!(codigo == codigoAcesso)) {
            System.out.println("Código de acesso inválido");
        }

        if (!listaDeAcesso.contains(nivelDeAcesso)) {
            System.out.println("nível de acesso inválido");
        }
    }
}

}

1 resposta
solução!

Oi, Gabriel! Como vai?

O seu código está muito bem estruturado e cumpre corretamente a lógica condicional proposta na atividade. A ideia de validar o código de acesso e o nível de permissão separadamente foi uma boa decisão, pois torna as mensagens de erro mais claras.

Uma dica interessante para o futuro é usar o método contains de forma combinada com uma lista definida diretamente, para evitar declarações extras quando os valores são fixos. Veja este exemplo:


if (codigo == 2023 && Arrays.asList(1, 2, 3).contains(nivelDeAcesso)) {
    System.out.println("Acesso permitido");
}

Esse trecho faz a verificação diretamente e mantém o código mais enxuto.

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