A ver si alguien me puede decir xq no funciona este "return"?

ElXeRiFf
04 de Septiembre del 2005
public int getCosteDeDepartamento(String nombreDeDepartamento) {
for (int i = 0; i < empleadosDelDepartamento.length; i++){
if (empleadosDelDepartamento[i] != null) {
if (empleadosDelDepartamento[i].getNombreDepartamento().equals(nombreDeDepartamento)) {
return (empleadosDelDepartamento[i].getCoste());
}
else
if (empleadosDelDepartamento[i] instanceof JefeDeDepartamento) empleadosDelDepartamento[i].getCosteDeDepartamento(nombreDeDepartamento);
}
}
return 0;
}

A ver si alguien me puede decir por qué cuando el programa entra en el if en el que tengo este return, el método no termina (que es lo que debería hacer al tener escrito un return) y el programa no me devuelve el coste que es lo que le tengo puesto en el método recursivo getCoste() al que llamo en este return: return (empleadosDelDepartamento[i].getCoste()); si no que el método getCosteDeDepartamento se sigue ejecutando y al final me devuelve 0

DarkAngel
04 de Septiembre del 2005
De la manera que estas haciendo siempre te va devolver 0 por que estas poniendo return 0 en la ultima linea si quieres que te de como resultado el coste que se calcula dentro del for deverias guardarlo en una variable y hacer el return de esa varible espero que esto te ayude