Problema em comparacao

Olá pessoal a duvida é a seguinte

preciso comparar os nome para que toda vez que digitado nomes iguais os jogadores insiram nomes diferentes
eu uso o Bluej por enquanto e estou no 1 semeste.
Desde já agradeço a colaboração de todos, muito obrigado!

[code]public class Jogo{

Teclado t = new Teclado();
Jogador j1 = new Jogador(t.leString(“Digite o nome do jogador1”));
Jogador j2 = new Jogador(t.leString(“Digite o nome do jogador2”));

public Jogador comparaNome(){
 String nomej1 = j1.getNome();
 String nomej2 = j2.getNome();
    while(nomej1.equals(nomej2)){
    
   if(nomej1 != nomej2)
     break;
   else
    System.out.println("Os jogadores não podem ter nomes iguais inisira qualquer caractere diferencial em qualquer nome");
    j1 = new Jogador(t.leString("Digite o nome do jogador1"));
    j2 = new Jogador(t.leString("Digite o nome do jogador2"));
  
 }
 return null;

}
}[/code]

oq esta dando errado , não consigo lembrar oque esqueci

Oi,

sua lógica está bem confusa e não use == para comparar valores de objetos, deve-se usar o método equals.
Mas aqui fica uma idéia de como pode ficar seu código:

[code]public class Jogo{

 public void cadastrarJogador() {
     Teclado t = new Teclado();   
     String nome = t.leString("Digite o nome do jogador1");
     while(nome.equalsIgnoreCase(j1.getNome()) {
        String nome = t.leString("Digite o nome do jogador1");
     }
 }

} [/code]

Onde ‘j1’ é a referência ao objeto Jogador. Você pode usar lista e etc, enfim, melhor e muito o código.
Só quis lhe mostrar como usar o equals, nesse caso, o equalsIgnoreCase, já que Joao e JOAO são nomes iguais :slight_smile:
Leia sobre String.

Abraços.

Da algum erro? Retorna Nulo?

Faltou atribuir os valores no final do While…
Realmente o código está um pouco confuso, mas está bom cara!
Seu código ficará como abaixo. Apenas adicionei duas linhas e deixei anotado lá…

public class Jogo {

    Teclado t = new Teclado();
    Jogador j1 = new Jogador(t.leString("Digite o nome do jogador1"));
    Jogador j2 = new Jogador(t.leString("Digite o nome do jogador2"));

    public Jogador comparaNome() {
        String nomej1 = j1.getNome();
        String nomej2 = j2.getNome();
        
        while (nomej1.equals(nomej2)) {
            if (nomej1 != nomej2) {
                break;
            } else {
                System.out.println("Os jogadores não podem ter nomes iguais insira qualquer caractere diferencial em qualquer nome");
            }
            j1 = new Jogador(t.leString("Digite o nome do jogador1"));
            j2 = new Jogador(t.leString("Digite o nome do jogador2"));

            nomej1 = j1.getNome(); //tava faltando essa linha 1
            nomej2 = j2.getNome(); //tava faltando essa linha 2

        }
        
        return null;
    }
}