Array´s e ArrayIndexOutofBoundsException:5(erro doido)

2 respostas
G

pessoal eu tenho que fazer uma rotina que pegue um vetor de nove posições e dividi em 2 e ache o meio dele e coloque o maior numero.
Ate tudo bem… Agora vem a parte complicada. Na parte para colocar um pedaço em outro vetor da uma Exception mencionada no ASSUNTO.
Agora é verdade, onde está este erro!

public class desafio1{
	public static void main(String args[]){
		
		 
        int v[] = new int[9];
        int pe[] = new int[3]; 
        int pd[] = new int[3]; 
        int maior = 0; 
        int n = 0;
        int o = 0;
        
        while(n<9){ 
        int nn =(int)(1 + Math.random() * 100); 
        
        if(v[n]==4) 
        continue; 
        if(nn > maior){ 
           maior = nn; 
           v[4]=maior; 
        }else{ 
          v[n]=nn; 
        } 
        n++; 
      } 
        
      for(int x=0; x<3; x++){
      	pe[x]=v[x];
      	System.out.println(pe[x]);
      }

      for(int y=5; y<8; y++){
        pd[o]=v[y];
        System.out.println(pd[y]);
        o++;	
      }
        

		
		
		System.exit(0);
	}
}

Eu sei que é alguma coisa com o index que deve ter passado ou infringindo… Só que não enchergo. Alguem poderia dizer onde ta esse erro?
grato.

2 Respostas

G

Eu posso ta errado, mas o erro que isto ta causando é por causa dessa parte da instrução:

if(v[n]==4) 
        continue; 
        if(nn > maior){ 
           maior = nn; 
           v[4]=maior; 
        }

Se for, qual melhor saida. Para achar o maior numero dentro desse vetor e sem utilizar funções prontas do Java.

C

Vc ta tentano usar uma área no seu array que não tem nada.
Use o debug para ver o que está dentro do seu array, ou se nao quizer, imprima ele dentro d um for. ok ?

Criado 11 de abril de 2007
Ultima resposta 12 de abr. de 2007
Respostas 2
Participantes 2