Meu método dá erro!

7 respostas
java
Lety1

Estou praticando java e no meu código eu fiz um método pra fazer login, comparar um login e senha que o usuário digitou com o login e senha da lista, mas não está dando certo.Já tentei de várias formas. podem me ajudar?

public void fazerLogin(String login,int senha){
         Estudante element = null;
        for (Iterator<Estudante> iter = estudantes.iterator(); iter.hasNext(); ) {
        
        
          element = iter.next();
        
         if(element.getLogin().equals(login) && element.getSenha()==senha){
              System.out.println("login certo");
              System.out.println("senha certa");
              break;
         }else{
              System.out.println("login errado");
              System.out.println("senha errada");
              break;
        
            }
         
        }

7 Respostas

Lucas_Camara

Como vc está preenchendo a lista de estudantes?

Lety1
public static void main(String[]args){
        Scanner s=new Scanner(System.in);
        Estudante p1=new Estudante("Rami Malek","546453459","535678676",
       "Rua Artur Paulo,106",22,"[email removido]","Malek1",246812);
        Estudante p2=new Estudante("John wick","[telefone removido]","987564854",
        "Rua Artur Paulo,108",32,"[email removido]","John12",12345);
        DadosEstudante e1=new DadosEstudante();
        e1.adicionaEstudante(p1);
        e1.adicionaEstudante(p2);
        e1.imprimeEstudantes();
         System.out.println("Digite seu login:");
        String log=s.nextLine();
        System.out.println("Digite sua senha:");
        int senha=Integer.parseInt(s.nextLine());
        e1.fazerLogin(log, senha);
        
        
     }
Lety1

O Estudante p1 dá certo mas o p2 não.

Eu guardo esses dados dentro de uma arraylist na classe DadosEstudante.

pmlm

Porque estás a percorrer uma lista mas apenas comparas o primeiro valor e escreves sucesso ou errado consoante esse valor e fazes break.

staroski

Assim não funcionou?

public void fazerLogin(String login,int senha){
    for (Estudante element : estudantes) {
        if (element.getLogin().equals(login) && element.getSenha().equals(senha)){
            System.out.println("login certo");
            System.out.println("senha certa");
            return;
        }
    }
    System.out.println("login errado");
    System.out.println("senha errada");
}
Lety1

deu certo! muito obrigada! da forma como eu estava usando com o iterator estava dando errado mas agora com seu código deu certo. obrigada!

staroski

O problema não era o Iterator, o problema era aquele else dentro do laço.

Criado 12 de agosto de 2021
Ultima resposta 17 de ago. de 2021
Respostas 7
Participantes 4