5
respostas

Curso Java Aula 4 Arrays exercício 4

Olá

onde está o erro abaixo uma vez que eu executo o executável e não gera coisa alguma? A função mostraEmpregados ficou assim:

void mostraEmpregados() {
            for (int i = 0; i < this.livre; i++) {
                System.out.println("Funcionário na posição: " + i);
                System.out.println("R$" + this.empregados[i].salario);
            }
}

e na classe TestaEmpresa eu deixei assim:

class TestaEmpresa {

public static void main (String[] args) {
    Empresa empresa = new Empresa();
    empresa.empregados = new Funcionario[10];

     Funcionario f1 = new Funcionario();
                f1.salario = 1000;
                f1.Entrada = new Data();
                empresa.adiciona(f1);

                Funcionario f2 = new Funcionario();
                f2.salario = 1700;
                f2.Entrada = new Data();
                empresa.adiciona(f2);

             //   empresa.empregados[0].mostra();
             //   empresa.empregados[1].mostra();

        empresa.mostraEmpregados();
}

não dá erro, apenas não mostra o resultado da função mostraEmpregados. Será que estou me esquecendo ou omitindo algo?

5 respostas

João, sempre que for adicionar código, coloque-os entre ```, pois assim eles ficam formatados.

Exemplo:

Código aqui

Bom... Qual o valor de livre na classe Empresa , quando você usa no for de mostraEmpregados()?

OK..Vinicius... vou colocar entre "" O valor é int livre = 0 dentro da classe Empresa.

Se livre é 0, o código nunca entra naquele for, entende? Porque i é 0, e 0 não é menor do que 0 (i < this.livre).

Por isso nada é exibido, entendeu?

Olá João,

como está a sua função adiciona na classe Empresa? Para cada funcionário que você adiciona no arrray, precisa incrementar em 1 este atributo livre. O adiciona faz esta atualização? Caso contrário, é como o Carlos comentou, este atributo ficará sempre com o valor 0 e não entra no seu for.

OK..obrigado Carlos Vinicius e Lukas Takeshi. Entendi.