Problemas com Array

Ae galera blz?
Estou com uma dificuldade…Eu tenho o seguinte código:



public class Empresa {

	String nomeEmpresa;
	String CNPJ;
	Funcionario[] empregados;

	public void adiciona(Funcionario f) {

		int i;
		for (i = 0; i <= empregados.length; i++) {
			if (empregados[i] == null) {
				this.empregados[i] = f;
			}
		}
	}
	
	public void mostraEmpregado(){
		for(Funcionario fu : empregados){
			JOptionPane.showMessageDialog(null, fu);
		}
	}
}


package ContaBancaria;

import javax.swing.JOptionPane;

public class EmpresaTeste {

	public static void main(String[] args) {
		
		Funcionario func = new Funcionario();
		Empresa empresa = new Empresa();
		empresa.empregados = new Funcionario[10];
		
		
		for (int i = 0; i <= 10; i++) {
			func.setNome("nome");
			func.setDataAdmissao("17/06/2012");
			func.setDepartamento("TI");
			func.setRG("2427766");
			func.setSalario(1000);
			empresa.CNPJ = "12345678909";
			empresa.nomeEmpresa = "Incríveis";
		
			empresa.adiciona(func);
		}
		
		
	}

}

E está aparecendo o seguinte erro:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 10
at ContaBancaria.Empresa.adiciona(Empresa.java:15)
at ContaBancaria.EmpresaTeste.main(EmpresaTeste.java:23)

Podem me explicar e ajudar a resolver?

Grato

você tem que iterar até (array.length -1)

porque imagine a situação, um array de 10 posições, as posições vão de 0 a 9, mas como você itera até array.length que vale 10, ele vai tentar acessar a posição 10 do array, que não existe, então será lançada a exceção.

você tem 2 saídas:

Primeira:for (i = 0; i <= empregados.length -1 ; i++) { Segunda:for (i = 0; i < empregados.length; i++) { Eu particularmente gosto mais da segunda.

Vlw fera…eu não tinha percebido isso!!

Agora funfou!!

Abrass