Duvida retorn metodo boolean

3 respostas
L

Boa tarde senhores!

estou com uma duvida no meu metodo.
Ele sempre da um erro chamado, "missing return statment":

boolean contem(Funcionario f) {

for (int i = 0; i < this.funcionarios.length; i++) {

if (funcionarios[i] == f) {

if (funcionarios[i].estaNaEmpresa == true) {

return true;

} else {

return false;

}

} else {

return false;

}

}
}

O que eu deveria retornar?

3 Respostas

L

é porque todos os seus retornos estão dentro de um bloco for. Caso ele não entre no for ele retornaria o que?

Você tem que colocar uma linha antes de fechar a chave do método “return false”, ok?

J

A explicação do erro já foi dada pelo lcm4693.

Como boa pratica, seria interessante usar apenas um return. E não compare um boolean a outro boolean (funcionarios[i].estaNaEmpresa == true), apesar de não ser um erro de compilação, é considerado um erro de lógica.

boolean contem(Funcionario f) {
   boolean esta = false;
   for (int i = 0; i < this.funcionarios.length; i++) {
      if (funcionarios[i] == f) {
         esta = funcionarios[i].estaNaEmpresa;
         break;
      }
   }
   
   return esta;
}
P

Olá.

Pessoal, nesse método estamos passando um Objeto do tipo Funcionario.
Então essa comparação que vcs pedem na questão é para comparar referência com referência?
Chamo por exemplo: empresa.contem(f);

Já no caso se fosse para ver se o nome já existe ai teria de passar para o método algo tipo (String x)?
Então ficaria: empresa.contem(“Nome”); E alterar o if la do método.

Criado 5 de agosto de 2008
Ultima resposta 29 de nov. de 2011
Respostas 3
Participantes 4