Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução do Desafio

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        String senhaCorreta = "1234";
        String entradaSenha;
        int numeroTentativas = 3;
        int tentativasErradas = 0;

        Scanner scanner = new Scanner(System.in);

        do {
            System.out.print("Digite sua senha: ");
            entradaSenha = scanner.nextLine();

            if (entradaSenha.equals(senhaCorreta)) {
                System.out.println("Senha Correta! Acesso concedido!");
                break;
            }

            tentativasErradas++;

            int tentativasRestantes = numeroTentativas - tentativasErradas;

            if (tentativasErradas == numeroTentativas) {
                System.out.println("Conta bloqueada temporariamente.");
            } else if (tentativasRestantes == 1) {
                System.out.println("Senha Incorreta! Você tem 1 tentativa restante");
            } else {
                System.out.println("Senha Incorreta! Você tem " + tentativasRestantes + " tentativas restantes");
            }

        } while (tentativasErradas < numeroTentativas);

        scanner.close();

    }
}

1 resposta

Oi, Pablo. Tudo bem com você?

Obrigado por compartilhar sua resolução do desafio de monitorar tentativas de login. O código atende ao objetivo da atividade e implementa corretamente a lógica de limitar o número de tentativas, concedendo o acesso quando a senha correta é informada e bloqueando a conta após três erros consecutivos. Também foi uma boa escolha utilizar um laço do while, já que ele garante que a senha seja solicitada pelo menos uma vez.

Outro ponto positivo é o uso do método equals() para comparar as Strings, que é a forma adequada em Java. Além disso, a variável tentativasRestantes torna as mensagens mais claras para quem está utilizando o programa. O uso do break também contribui para encerrar o laço imediatamente quando a autenticação é realizada com sucesso, evitando verificações desnecessárias.

Como próximo passo, você conseguiria adaptar essa lógica para validar diferentes usuários, cada um com sua própria senha cadastrada?

Parabéns pela resolução e por compartilhar seu código. Continue participando das atividades e, sempre que surgir uma nova dúvida ou quiser mostrar outra solução, o fórum está à disposição.

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