Exercicio cap. 5 Caelum loop

class Funcionario {
	
	String nome;
	String departamento;
	double salario;
	String dataEntrada;
	String rg;
	boolean estaNaEmpresa;
	
	
	
	
	void bonifica(double valor){
		this.salario=this.salario+valor;		
	}
	void demite(){
		this.estaNaEmpresa=false;		
	}
	
	void mostra(){
		System.out.println("Nome: " + this.nome);
		System.out.println("Departamento: " + this.departamento);
		System.out.println("Salário: " + this.salario);
		System.out.println("Data da Entrada: " + dataEntrada);
		System.out.println("RG: " + this.rg);
		
		if(this.estaNaEmpresa==true){
			System.out.println("Contratado: Sim");
		}
		else{
			System.out.println("Contratado: Não");
		}
		System.out.println();
		
	}
	    
}



class Empresa {
	String nomeEmpresa;
    Funcionario [] funcionarios;
    String cnpj;
    
    void adiciona(Funcionario f){
    	
    	for(int i = 0; i< this.funcionarios.length; i++){
    			if(this.funcionarios[i] == null){
    				this.funcionarios[i]=f;
    				break;
    			}
    			
    		
    	}
    }
}

import javax.swing.*;
class TesteFuncionario {

    public static void main(String[] args){
    	
    	Empresa empresa = new Empresa();
    	empresa.nomeEmpresa = "Fulano de Tal";
    	empresa.cnpj = "00.000.000/0000-00";
    	System.out.println("Empresa: "+empresa.nomeEmpresa);
    	System.out.println("CNPJ: "+empresa.cnpj);
    	System.out.println();
    	
    	empresa.funcionarios = new Funcionario [10];
    	
                //Gostaria de saber como criar os funcionarios em um loop em vez de um por um como fiz abaixo 

    	Funcionario f1 = new Funcionario();
    	f1.nome = JOptionPane.showInputDialog("Digite o Nome !!!!!");
    	f1.departamento = JOptionPane.showInputDialog("Digite o Departamento !!!!!");
    	f1.salario = Double.parseDouble(JOptionPane.showInputDialog("Digite o Sálario !!!!!"));
    	f1.dataEntrada = JOptionPane.showInputDialog("Digite a Data !!!!!");
    	f1.rg = JOptionPane.showInputDialog("Digite o RG !!!!!");
    	f1.estaNaEmpresa = true;
    	empresa.adiciona(f1);
     	
     	     	
     	for(int i = 0; i<empresa.funcionarios.length; i++){
     		empresa.funcionarios[i].mostra();
     	}
    	     	     		
    }
}

Gostaria de saber como criar um loop para criar os funcionarios ao envés de criar um por um como eu fiz nesse código Obrigado !!!

O que te impede de colocar tudo entre as linhas 75 (Funcionario f1) e 82 (empresa.adiciona) dentro de um laço for ?

while (true) { Funcionario f1 = new Funcionario(); f1.nome = JOptionPane.showInputDialog("Digite o Nome !!!!!"); if (f1.nome == "fim") break; f1.departamento = JOptionPane.showInputDialog("Digite o Departamento !!!!!"); f1.salario = Double.parseDouble(JOptionPane.showInputDialog("Digite o Sálario !!!!!")); f1.dataEntrada = JOptionPane.showInputDialog("Digite a Data !!!!!"); f1.rg = JOptionPane.showInputDialog("Digite o RG !!!!!"); f1.estaNaEmpresa = true; empresa.adiciona(f1); }

PO, while true quando o cara insere num array é sacanagem! Pelo menos um “deseja incluir outro?”…

obrigado pela dica eu tinha feito mas de uma outra forma e naum estava conseguindo obrigado

Resolvi

bom dia pessoal;

Olhando esse topico tirei algumas duvidas mas me apareceu outra:

Por que na classe Empresa dele ele colocou:

Funcionario [] funcionarios; 

Abs!