Problema em comparacao

3 respostas
T

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!

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;
   }
}

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

3 Respostas

nel

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:

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");
         }
     }
}

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 :)
Leia sobre String.

Abraços.

J

Da algum erro? Retorna Nulo?

Renan_Celso

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;
    }
}
Criado 19 de outubro de 2011
Ultima resposta 19 de out. de 2011
Respostas 3
Participantes 4