ricardo.santos3 15 de jan. de 2018
Mudei para este codigo e continua a dar erro
static boolean jaUsada( char tentativa) {
char [] usadas = { 67 } ;
for ( int i = 0 ; i <= usadas . length ; i ++ ) {
if ( usadas [ i ] == tentativa ) { // Verifica se a letra já foi utilizada
return false ; }
else
usadas [ usadas.length+1 ] = tentativa ; // Caso não tenha sido utilizada ela é adicionada no final
}
return true ;
}
wsilvaasc 15 de jan. de 2018
ricardo.santos3 15 de jan. de 2018
Da Erro diz para eliminar o 67…
wsilvaasc 15 de jan. de 2018
Tenta assim então
public class TesteChar {
private static String usadas [] = {};
public static boolean jaUsada ( String tentativa ) {
int idx = 0 ;
for ( int i = 0 ; i < usadas . length ; i ++ ) {
if ( usadas [ i ] . equals ( tentativa )) {
return false ;
} else {
idx ++ ;
usadas [ idx ] = tentativa ;
}
}
return true ;
}
}
rodevops 16 de jan. de 2018
Sabe usar listas?
private static List < Character > usadas = new ArrayList <> () ;
public boolean isUsada ( char tentativa ) { // is é boa pr ática , leia sobre code conventions em java ...
if ( usadas .contains ( tentativa )) {
return true ;
}
usadas .add ( tentativa ) ;
return false ;
}
Aliás o método jaUsada tem duas responsabilidades (testar se existe e armazenar na lista) e o ideal seria separar as coisas…
public boolean isUsada ( char tentativa ) {
return usadas .contains ( tentativa ) ;
}
public void addTentativa ( char tentativa ) {
usadas .add ( tentativa ) ;
}
Retirei os static dos métodos porque para o seu caso não se faz necessário, um atributo estático na classe pode ser acessado por métodos não estáticos, o que não pode é atributos não estáticos sendo acessados de métodos estáticos…