Request access data when any data is wrong

-3

Could someone tell me a way to do the following thing: After the password or user error, or both, the user would return to the first question, in the case: "What is the user?" so he could try again.

package SistemaLogineRegistro;

import java.util.Scanner;

public class Login {
    public static void main(String[] args) {
        Usuario um = new Usuario();
        um.setUsuario("Yuri", "123123yuri");
        um.getUsuario();
        um.getSenha();

        int tentativa = 0;
        Scanner s = new Scanner(System.in);
        System.out.println("Qual o usuario?");
        String usuario = s.nextLine();
        System.out.println("Qual a senha?");
        String senha = s.nextLine();

            if (usuario.equalsIgnoreCase(um.getUsuario()) && senha.equals(um.getSenha())) {
                System.out.println("Logado com sucesso!");
            }
            else if(!usuario.equals(um.usuario)) {
                System.err.println("Usuario incorreto");
                tentativa += 1;

            } else if (!senha.equals(um.senha)) {
                tentativa += 1;
                System.err.println("Senha incorreta");
            } else if (!senha.equals(um.senha) && !usuario.equals(um.usuario)) {
                tentativa += 1;
                System.out.println("Usuario e senha Incorretos !");
            }else if(tentativa >= 5){
                System.err.println("Você excedeu o Limite de ERRO ! (5) Tentativas");
            }   

        {

        }
    }

}
    
asked by anonymous 04.06.2018 / 17:49

1 answer

1

See if that's what you need. Read the comments in the code and, if you have any questions, just ask. This is just one way to solve your problem.

public static void main(String args[]) {
        Usuario um = new Usuario("Yuri", "12345");
        int tentativa = 0;
        Scanner s = new Scanner(System.in);
        String usuarioDigitado, senhaDigitada;
        int numeroMaximoTentativas = 5;

        //O laço será executado enquanto não for atingido
        //o número máximo de tentativas
        while(tentativa < numeroMaximoTentativas) {
            tentativa++;
            System.out.println("Qual o usuario?");
            usuarioDigitado = s.nextLine();

            if(!usuarioDigitado.equals(um.getUsuario())) {
                System.out.println("Usuário incorreto");
            }

            System.out.println("Qual a senha?");
            senhaDigitada = s.nextLine();

            if(!senhaDigitada.equals(um.getSenha())) {
                System.out.println("Senha incorreta");
            }

            if(usuarioDigitado.equals(um.getUsuario()) &&
                    senhaDigitada.equals(um.getSenha())) {
                System.out.println("Usuário logado com sucesso");
                //Se usuário e senha batem, quebramos o laço
                break;
            }

            //Enquanto ainda houver tentativa, a mensagem é mostrada
            if(tentativa < numeroMaximoTentativas) {
                System.out.println("Restam " + (numeroMaximoTentativas - tentativa) + " tentativas...");
            }

            if(tentativa == numeroMaximoTentativas) {
                System.out.println("Você excedeu o limite de erros!! Finalizando...");
            }
        }
    }
}

class Usuario {
    private String usuario;
    private String senha;

    public Usuario(String usuario, String senha) {
        this.usuario = usuario;
        this.senha = senha;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }
}
    
04.06.2018 / 19:24