privateStringnome;privateStringsobrenome;privateStringendereco;privateStringlogin;Scannerentrada=newScanner(System.in);Set<String>logins=newHashSet<String>();publicvoidcadastraClientes(){System.out.println("----------------------------------");System.out.print("Nome: ");Stringnome=entrada.nextLine();this.setNome(nome);System.out.print("Sobrenome: ");Stringsobrenome=entrada.nextLine();this.setSobrenome(sobrenome);System.out.print("Endereço: ");Stringendereco=entrada.nextLine();this.setEndereco(endereco);System.out.print("Login: ");Stringlogin=this.loginDeUsuarios();this.setLogin(login);}publicStringloginDeUsuarios(){Stringnome=null;while(!(nome.equals(logins))){nome=entrada.nextLine();if(nome.equals(logins)){System.out.println("Já existe esse login. Escolha outro por favor!");}else{logins.add(nome);}}returnnome;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetSobrenome(){returnsobrenome;}publicvoidsetSobrenome(Stringsobrenome){this.sobrenome=sobrenome;}publicStringgetEndereco(){returnendereco;}publicvoidsetEndereco(Stringendereco){this.endereco=endereco;}publicStringgetLogin(){returnlogin;}publicvoidsetLogin(Stringlogin){this.login=login;}
Stringlogin;Scannerentrada=newScanner(System.in);Set<String>logins=newHashSet<String>();publicStringpropagaLogin(){intachaLogin=0;while(achaLogin>=0){this.login=entrada.nextLine();if(logins.contains(this.login)){System.out.println("Já existe esse login. Escolha outro por favor!");achaLogin=0;}else{logins.add(this.login);achaLogin=-1;break;}}returnthis.login;}
}
`
Eduardo_Maranata10
Bem, não consegui entender o seu problema, então fiz algo para melhorar o seu código, segue as classes
publicclassTeste{publicstaticvoidmain(String[]args){LogaSistemalogaSistema=newLogaSistema();// com o certoSystem.out.println(logaSistema.loga(newLogin("adm","123"))?"Logou":"Não Logou");//com erradoSystem.out.println(logaSistema.loga(newLogin("ad","123"))?"Logou":"Não Logou");}}
Não é interessante você misturar elementos de entrada (Scanner) com a sua classe de negócios (Login, LogaSistema), espero que você observe esse exemplo.
Abraço
G
Grupocodenome1 like
Fala Edu!!!
Obrigado pela resposta!
Esse sistema é ainda mais simples que isso!
É uma locadora de filmes onde no cadastro do cliente vou precisar propagar um login. Funcionará como uma chave para o cliente esse mesmo login.
Naquele algoritmo lá em cima, tento adicionar o login em um loop while. Mas enquanto ele acha o login com o mesmo nome ele gera uma informação mediante a existência daquele login.
Eduardo_Maranata101 like
Certo amigo, tenho alguns pontos para ressalta :
Uma característica usada pela interface Set, ela não aceita elementos duplicados, mas para isso é necessário que você implementa na sua classe Login o métodos hashCode e equals.
O método add da Interface Set retorna um boolean afirmando se inseriu ou não o elemento .
Também usei a recursividade.
publicclassLogaSistema{//Aqui Metodos e Atributos anteriorespublicbooleanadiciona(Loginlogin){returnsets.add(login);}publicvoidmostraRegistros(){for(Loginlogin:sets){System.out.println(login);}}