Erro ArrayIndexOutOfBoundsException no meu programa

Boas pessoal queria so que me explicassem o porque deste erro:
“Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 10
at test.main(test.java:19)”

o programa que fiz tem como objectivo de tirar a media e a moda(valor mais frequente do array) onde reside o meu problema, ele a media tira sem problemas, o prog é este:

public class test {
	public static void main(String[]args){
		Scanner kbd=new Scanner(System.in);
		double[] a=new double[10];
		double soma=0,media;
		
		for(int i=0;i<a.length;++i){
			a[i]=kbd.nextInt();
			soma=soma+a[i];
			
			}
		
		media=soma/10;	
		System.out.println("media:"+media);
		int j=0;
		
		do{
			if(a[j]==a[j+1])
				System.out.print("moda: "+(int)a[j]+"");
			j=j+1;
			
		}while(j><a.length);
	}

}

se me puderem ajudar agradecia.
Obrigado>

EDIT - (Moderador)

  1. Ponha um título mais descritivo que “Problema” ou “Help” ou “Socorro”.
  2. Use os tags [ code ] - há um botãozinho [ code ] bem na linha “Corpo da Mensagem”. Basta clicar uma vez antes de postar seu código, e uma vez depois.

olá nasomet

primeiro vou te dar umas dicas sobre o forum…
coloca seu codigo dentro da tag code p/ melhor compreensão :slight_smile:
e o título do tópico, coloque sempre algo mais objetivo… :wink:

acho q o seu while tem algo errado, nao seria assim o seu codigo??

[code]public class test {
public static void main(String[]args){
Scanner kbd=new Scanner(System.in);
double[] a=new double[10];
double soma=0,media;

		for(int i=0;i<a.length;++i){
			a[i]=kbd.nextInt();
			soma=soma+a[i];
	
		}

		media=soma/10;
		System.out.println("media:"+media);
		int j=0;

		do{
			if(a[j]==a[j+1])
				System.out.print("moda: "+(int)a[j]+"");
			j=j+1;
	
		}while(j >< a.length);
	}
}[/code]

No teu for

[code]for(int i=0;i<a.length;++i){
a[i]=kbd.nextInt();
soma=soma+a[i];

}[/code]

use o operador de pós-incremento (i++) e não pré-incremento (++i)

[code]for(int i=0;i<a.length;i++){
a[i]=kbd.nextInt();
soma=soma+a[i];

}[/code]

Linha 19:if(a[j]==a[j+1])

Você tenta compara o último valor com um depois do último.

java.lang.ArrayIndexOutOfBoundsException

Vc esta tentando acessar um indice alem do seu array, se vc declarou-o como tendo tamanho 10, ele vai de 0 a 9, tipicamente vc esta tendo um problema inesperado em alguma ponta da sua lógica :wink:

Verifique as bordas. Não é legal acessar o elemento 1024 de uma matriz que vai até 100 – aprendi isso duramente na prática :frowning: