我有一个方法去randomaccesFile,当注册时保留一个字符" A"如果它是活跃的并且" B"如果没有,那么一个int与记录中的字节数,然后如此注册。代码等于该方法时返回true会发生什么;但最后我返回false
public boolean seEncuentra(int pos , char[] codigo) {
clsPersona contacto = new clsPersona(); //object contact
try {
// buscar registro apropiado en el archivo
abrirArchivo();
archivo.seek(pos);
contacto.estado = archivo.readUTF();
contacto.setTAMANIO(archivo.readInt());
if("A".equals(contacto.estado))
{
for (int i = 0; i < 3; i++) {
contacto.codigo[i] = archivo.readChar();
}
if(Arrays.equals(codigo, contacto.codigo))
{
return true; //enter here and ends up returning false at the end
}
else
{
pos+=contacto.TAMANIO;
seEncuentra(pos, codigo);
}
}
else
{
pos+=contacto.TAMANIO;
seEncuentra(pos, codigo);
}
cerrarArchivo();
}
catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
cerrarArchivo();
return false;
}
return false;
}
答案 0 :(得分:4)
递归 ,不返回递归值。变化
seEncuentra(pos, codigo);
到
return seEncuentra(pos, codigo);
每个,递归。