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

Aula Array/ Exercicio 4

Olá Pessoal, Não estou conseguindo imprimir nenhuma linha da minha array usando o For (tentei tambem imprimir 1 unica linha usando o método Println, mas tbm não consegui).

Poderiam me ajudar a entender onde estou errando, por favor?

Obs: estou usando o Eclipse Java EE IDE for Web Developers (4.4.0)

Essa é uma classe .java que chamo de "Funcionario" public class Funcionario { double salario; //String dataEntrada; String RG; String nome;

Data dataEntrada=new Data();

void recebeAumento (double aumento) { this.salario += aumento; }

double calculaGanhoAnual () { return this.salario += salario * 11; }

void mostra(){ System.out.println("Nome " + this.nome); System.out.println("Salario " + this.salario); System.out.println("RG " + this.RG); System.out.println("Dia da Admissão " + this.dataEntrada.dia); System.out.println("Data da Admissão " + this.dataEntrada.getFormatada()); System.out.println("Ganho Anual " + this.calculaGanhoAnual()); }

public class Data{ int dia; int mes; int ano;

void preencheData (int dia, int mes, int ano) { this.dia = dia; this.mes = mes; this.ano = ano; }

String getFormatada(){ String data = this.dia + "/"+ this.mes + "/" + this.ano; return data; //ou -> return this.dia + "/" + this.mes + "/" + this.ano; } }

public static void main(String[] args) {

Empresa empresa = new Empresa(); empresa.empregados = new Funcionario[5];

for (int i = 0; i > 5; i++) { Funcionario func = new Funcionario(); func.salario = 1000 + i * 100; func.nome = "Func" + i; empresa.adiciona(func); empresa.mostraEmpregados(); }

Funcionario f1 = new Funcionario(); f1.nome = "Eu1"; f1.salario = 1000; f1.RG = "123"; f1.dataEntrada.preencheData(8, 8, 1986);

f1.recebeAumento(50); //f1.mostra();

Essa é uma classe .java que chamo de "Empresa" public class Empresa { String nome; String cnpj; Funcionario[] empregados; // Array de Funcionario int livre = 0; //variavel para iniciar o cadastro de Funcionarios

void adiciona (Funcionario func){ this.empregados[5] = func; this.empregados[this.livre] = func; this.livre ++; }

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); } } }

2 respostas
solução!
void adiciona (Funcionario func){ 
->    this.empregados[5] = func; -> Observe esta linha
   this.empregados[this.livre] = func;
   this.livre ++; }
    Na linha setada acima:
    this.empregados[5] = func; 
    Aqui voce esta colocando o valor func na 5 posicao do array sempre (mas nao é isso que ta atrapalhando seu codigo)
for (int i = 0; i > 5; i++) // da classe funcionario)
aqui voce esta mandando o codigo repetir enquanto i for maior que 5 porem i comeca em 0

Pouts !!! Que erro feio, nem tinha me atentado a isso, rs ...

Muito obg Paulo, vlw mesmo !!