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
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
Leia sobre String.
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;
}
}