该方法返回false,实际上它是真正的java

时间:2016-06-19 22:44:10

标签: java

我有一个方法去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;
}

1 个答案:

答案 0 :(得分:4)

递归 不返回递归值。变化

seEncuentra(pos, codigo);

return seEncuentra(pos, codigo);

每个递归