Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

erro inesperado

class Empresa{

        String nome;
        String cnpj;
        Funcionario[] funcionarios;

        void adicionar(Funcionario f){
        int posicao = 0;
        while(posicao < funcionarios.length) {
            if(this.funcionarios[posicao] == null) {
                this.funcionarios[posicao] = f;
                break;
            }
            posicao++;
            }
        }
        void mostraEmpregados(){
            for (int i=0; i<this.funcionarios.length; i++){
                System.out.println("Nome: " + this.funcionarios[i].nome);
                System.out.println("Funcionario na posiçao "+i);
                System.out.println("Salario: " + this.funcionarios[i].salario);
                System.out.println("RG: " + this.funcionarios[i].rg);
            }
        }

        void mostraTodasAsInformacoes(){
            for (int i=0; i<this.funcionarios.length; i++){
                this.funcionarios[i].mostra();
            }
        }

        boolean contem(Funcionario f){

            boolean existe= true;


            for (int i=0; i < this.funcionarios.length; i++){
                if(this.funcionarios[i]==f){
                    existe=true;
                    System.out.println("Existe");
                }else {
                    existe= false;
                    System.out.println("Nao Existe");
                }
      }

 }        
class TestaEmpresa{
    public void main(String[]args){

        Empresa bolsao= new Empresa();
        bolsao.funcionarios= new Funcionario[10];

        Funcionario bilbo= new Funcionario();
        bilbo.nome= "Bilbo Baggins";
        bilbo.salario= 12000;
        bilbo.rg= "1234";
        bilbo.dataEntrada= new Data();
        bilbo.dataEntrada.preencheData(3,4,1239);
        bolsao.adicionar(bilbo);

        Funcionario pipin= new Funcionario();
        pipin.nome= "Peregrin Tuc";
        pipin.salario=300;
        pipin.rg="4321";
        pipin.dataEntrada= new Data();
        pipin.dataEntrada.preencheData(23,6,1367);
        bolsao.adicionar(pipin);

        Funcionario sam= new Funcionario();
        sam.nome= "Samwise";
        sam.salario=800;
        sam.rg="2143";
        sam.dataEntrada= new Data();
        sam.dataEntrada.preencheData(3,6,2016);
        bolsao.adicionar(sam);

        bolsao.mostraTodasAsInformacoes();






    }
}

Apareceu este erro no meu codigo: Funcionario.java:93: error: missing return statement } ^ 1 error

não faço ideia de como consertar

3 respostas

Oi Isabel,

Faltou retornar a variável existe no seu método contem. O return deve ser feito na última linha do método.

Além disso faltou também fechar o for deste mesmo método.

Abraço!

No método contem faltou fechar o for, e também está faltando o static no método main. Seguem código corrigido abaixo.

class Empresa{

        String nome;
        String cnpj;
        Funcionario[] funcionarios;

        void adicionar(Funcionario f){
            int posicao = 0;
            while(posicao < funcionarios.length) {
                if(this.funcionarios[posicao] == null) {
                    this.funcionarios[posicao] = f;
                    break;
                }
                posicao++;
            }
        }

        void mostraEmpregados(){
            for (int i=0; i<this.funcionarios.length; i++){
                System.out.println("Nome: " + this.funcionarios[i].nome);
                System.out.println("Funcionario na posiçao "+i);
                System.out.println("Salario: " + this.funcionarios[i].salario);
                System.out.println("RG: " + this.funcionarios[i].rg);
            }
        }

        void mostraTodasAsInformacoes(){
            for (int i=0; i<this.funcionarios.length; i++){
                this.funcionarios[i].mostra();
            }
        }

        boolean contem(Funcionario f){

            boolean existe= true;

            for (int i=0; i < this.funcionarios.length; i++){
                if(this.funcionarios[i]==f){
                    existe=true;
                    System.out.println("Existe");
                }else {
                    existe= false;
                    System.out.println("Nao Existe");
                }
            }
      }

 }
class TestaEmpresa{
    public static void main(String[]args){

        Empresa bolsao= new Empresa();
        bolsao.funcionarios= new Funcionario[10];

        Funcionario bilbo= new Funcionario();
        bilbo.nome= "Bilbo Baggins";
        bilbo.salario= 12000;
        bilbo.rg= "1234";
        bilbo.dataEntrada= new Data();
        bilbo.dataEntrada.preencheData(3,4,1239);
        bolsao.adicionar(bilbo);

        Funcionario pipin= new Funcionario();
        pipin.nome= "Peregrin Tuc";
        pipin.salario=300;
        pipin.rg="4321";
        pipin.dataEntrada= new Data();
        pipin.dataEntrada.preencheData(23,6,1367);
        bolsao.adicionar(pipin);

        Funcionario sam= new Funcionario();
        sam.nome= "Samwise";
        sam.salario=800;
        sam.rg="2143";
        sam.dataEntrada= new Data();
        sam.dataEntrada.preencheData(3,6,2016);
        bolsao.adicionar(sam);

        bolsao.mostraTodasAsInformacoes();
    }
}
solução!

Oi Isabel! Esse erro está acontecendo pois você declarou um método como:

boolean contem(Funcionario f){

a palavra boolean no começo indica que seu método deve retornar um true ou false após terminar sua execução, mas em seu código você não está retornando nada, faltou apenas essa linha no final dele:

return existe

Para te ajudar a resolver esses problemas a próxima vez que acontecer, tenta olhar qual a mensagem de erro, nesse caso, ela está indicando

missing return statement

e ela está dizendo que o erro está acontecendo na linha 93 da classe Funcionário. Essa linha provavelmente é o final do método contem

Abraços!