Está dando erro esse código, gostaria de saber por que?

Java

06/02/2014

o erro é: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 20 at exercicoD.exercicoD.main(exercicoD.java:27)

segue o código.

package exercicoD;
import java.util.Scanner;
public class exercicoD {
	public static void main (String [] args)
	{
		Scanner leia = new Scanner(System.in);
		int[] vetor = new int[20];
		int[] vetor2 = new int[20];
		int[] vetor3 = new int[40];
		for(int i = 0; i <= 19; i++)
		{
			System.out.print("Digite um número: ");
			vetor[i] = leia.nextInt();
		}
		for(int i = 0; i <= 19; i++)
		{
			System.out.print("Digite um número2: ");
			vetor2[i] = leia.nextInt();
		}
		/*Testar se o indice for par receber o valor do primeiro vetor,
		 * senão receber do segundo vetor */
		
		for(int i = 0; i <= 39; i++)
		{
			if ((i % 2)==0)
			{
				vetor3[i] = vetor[i];
			}
			else
			{
				vetor3[i] = vetor2[i];
			}
		}
		for(int i = 0; i <= 39; i++)
		{
			System.out.println (">> "+vetor3[i]);
		}
	}
}
Eliseu Mendes

Eliseu Mendes

Curtidas 0

Respostas

Eduardo Pessoa

Eduardo Pessoa

06/02/2014

no meu caso não apareceu erro, apenas isso

Digite um número: 10
Digite um número: 10
Digite um número: 2
Digite um número: 2
Digite um número: 2
Digite um número: 2
Digite um número: 2
Digite um número: 2
Digite um número: 2
Digite um número: 2
Digite um número: 2
Digite um número: 2
Digite um número: 2
Digite um número: 2
Digite um número: 2
Digite um número: 34
Digite um número: 43
Digite um número: 43
Digite um número: 22
Digite um número: 33
Digite um número2: 34
Digite um número2: 44
Digite um número2: 55
Digite um número2: 55
Digite um número2: 55
Digite um número2: 66
Digite um número2: 55
Digite um número2: 21
Digite um número2: 2234
Digite um número2: 4533
GOSTEI 0
Eliseu Mendes

Eliseu Mendes

06/02/2014

aqui aparece esse erro.
GOSTEI 0
Eliseu Mendes

Eliseu Mendes

06/02/2014

Encontrei a solução >>> se alguém precisar ta ai.

package exercicoD;
import java.util.Scanner;
public class exercicoD {
	public static void main (String [] args)
	{
		Scanner leia = new Scanner(System.in);
		int[] vetor = new int[5];
		int[] vetor2 = new int[5];
		int[] vetor3 = new int[10];
		int x = 0;
		int y = 0;
		for(int i = 0; i <= 4; i++)
		{
			System.out.print("Digite um número: ");
			vetor[i] = leia.nextInt();
		}
		for(int i = 0; i <= 4; i++)
		{
			System.out.print("Digite um número2: ");
			vetor2[i] = leia.nextInt();
		}
		/*Testar se o indice for par receber o valor do primeiro vetor,
		 * senão receber do segundo vetor */
		
		for(int i = 0; i <= 9; i++)
		{
			if ((i % 2)==0)
            {
                vetor3[i] = vetor[x];
                x++;
            }
            else
            {
                vetor3[i] = vetor2[y];
                y++;
            }
		}
		for(int i = 0; i <= 9; i++)
		{
			System.out.println (">> "+vetor3[i]);
		}
	}
}
//dúvidas nesse

GOSTEI 0
Alex Lekao

Alex Lekao

06/02/2014

oi Mendez, boa tarde!!!

Nao sou programador, mas nos meus tempos de Suporte qdo dava mensagens parecidas com essas, index bound erro, essas coisas.

Eram estouros de Vetor.

Da uma olhada neste link se te ajuda a esclarecer o problema, os caras estao tratando de um erro tipo o seu.
[url]http://www.guj.com.br/java/255941-arrayindexoutofboundsexception---nao-consigo-arrumar[/url]

Espero ter ajudado.

Abraco.

Alex - Lekao
GOSTEI 0
POSTAR