Metodo boolean não reconhece o return

Sou nova em programação e preciso fazer esse método:

Metodo para adicionar um gerente no arranjo de gerentes do banco. Caso o numero de gerentes seja igual a 10, não deve adicionar e deve retornar false. Caso contrário, há duas situações:

  • 1a: o gerente já consta no arranjo de gerentes (verifique isso usando o numero do cpf), neste caso o gerente não deve ser reinserido e o método deve retornar false;
  • 2a: o gerente passado como parâmetro não consta no arranjo de gerentes: o gerente deve ser adicionado na posição numGerentes, o atributo numGerentes deve ser incrementado em 1 e o método deve retornar true.

Mas sempre aparece que tem retornar um type boolean e não consigo entender:

boolean adicionarGerente(Gerente gerente) {
	for (int i = 0; i < numGerentes; i++) {
		if (numGerentes == 20 && gerentes[i] == gerente) {
			return false;
		}
		
		if (gerentes[i] == null) {
			gerentes[i] = gerente;
			numGerentes++;
			return true;
		}
	}
}
}

Sua função tem um problema: e se o algoritmo não entrar em nenhum dos if, vai retornar o que?

Uma pequena correção (verifique se é false mesmo caso essa condição ocorra)

boolean adicionarGerente(Gerente gerente) {
    for (int i = 0; i < numGerentes; i++) {
        if (numGerentes == 20 && gerentes[i] == gerente) {
            return false;
        }

        if (gerentes[i] == null) {
            gerentes[i] = gerente;
            numGerentes++;
            return true;
        }
    }
    
    // Se o algoritmo chegar aqui é obrigatório retornar algo
    return false;
}

Um pequeno exemplo de outra forma a se fazer:

boolean adicionarGerente(Gerente gerente) {
    // Caso 1
    if (gerentes.length == 10)
        return false;

    // Caso 2
    // Gerente consta no array?
    for (int i = 0; i < gerentes.length; i++) {
        if (gerentes[i].getCPF() == gerente.getCPF())
            return false;
    }

    // Se chegar aqui é porque o gerente não consta no array
    gerentes[numGerentes] = gerente;
    numGerentes++;

    return true;
}
1 curtida