Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 [RESOLVIDO]

6 respostas
Jeanfbs

Ai galera por favor onde é que esta ultrapassando meu array, pois ja fiz o debug do codigo varias vezes manualmente e não consigo ver o erro logico,
so para deixar explicado que a função setSala getVsala e getSala e o array sala se encontram em uma classe diferente porém no mesmo package;

o netbeans aponta o erro nas linhas 39 e 15

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package projetoc;

/**
 *
 * @author Jean
 */
public class teste {

    int cont=0,s=0;
    public static void main(String[] args) {
       new teste();
    }
    
    public teste(){
        
        new matriz().setSala(10);
        
    int ar=0,b=0,soma=0;
   
    for(int i=0;i<3;i++){

  for(int k =0;k<3;k++){
      
        
        ar = i-1;
        b = i+1;

        if(ar<0){ar=0;}
        if(b==3){ b=3;}
       
        for(int x=ar;i<b;x++){
            
            for(int y =ar;y<b;y++){
                
               s = new matriz().getVsala(x,y);
              System.out.println(s);
               soma = soma + s;
              
           cont++;}
        }   
        
        
        int result = soma/cont;
       System.out.println(result);
            
            new matriz().setVsala(i, k, result);

        }
  }
     
    new matriz().getSala();
  
     }
}

6 Respostas

javahunter

Tenta declarar a variável s da linha 13 como vetor:

int[] s = new int[5];Ve se ajuda

V

Se ainda não conseguiu fale mais sobre o código e o que deseja que ele faça.

Jeanfbs

Olá pessoal com um pouco de paciencia resolvi o codigo,
no primeiro for eu esta colocando i<b em vez de x<b segue a correção.

mas valeu pelas dicas…:slight_smile:

for(int x=ar;"x"<b;x++){  
              
            for(int y =ar;y<b;y++){  
                  
               s = new matriz().getVsala(x,y);  
              System.out.println(s);  
               soma = soma + s;  
                
           cont++;}  
        }     
          
          
        int result = soma/cont;  
       System.out.println(result);  
              
            new matriz().setVsala(i, k, result);  
  
        }

obs: coloquei o x em aspas para destacar a correção!!!

JavaDreams

Jeanfbs:
Olá pessoal com um pouco de paciencia resolvi o codigo,
no primeiro for eu esta colocando i<b em vez de x<b segue a correção.

mas valeu pelas dicas…:slight_smile:

for(int x=ar;"x"<b;x++){  
              
            for(int y =ar;y<b;y++){  
                  
               s = new matriz().getVsala(x,y);  
              System.out.println(s);  
               soma = soma + s;  
                
           cont++;}  
        }     
          
          
        int result = soma/cont;  
       System.out.println(result);  
              
            new matriz().setVsala(i, k, result);  
  
        }

obs: coloquei o x em aspas para destacar a correção!!!

Fera só duas dicas para você:

1 - Aprenda a debugar pois ajuda muito a resolver esses problemas

2 - Faça bastante exercícios assim no começo para fixar bem as ideias
pois ajuda muito nos problemas mais complexos que virão daqui para frente.

abraço.

Jeanfbs

ai mano valeu pelas dicas mas eu faço os dois, tanto debug quanto exercicio eu apenas resolvi fazer esse mesmo exercicio de uma maneira diferente por isso acabei
me enrolando no for, mas mesmo assim ainda vale muito suas dicas, valeu

JavaDreams

Jeanfbs:
ai mano valeu pelas dicas mas eu faço os dois, tanto debug quanto exercicio eu apenas resolvi fazer esse mesmo exercicio de uma maneira diferente por isso acabei
me enrolando no for, mas mesmo assim ainda vale muito suas dicas, valeu

Que bom, então é diferente
faz o seguinte, continua tentando fazer na cabeça mesmo
e tipo continua tentando fazer de maneira diferente
pois isso ajuda muito a evoluir.

abraço.

Criado 16 de agosto de 2013
Ultima resposta 19 de ago. de 2013
Respostas 6
Participantes 4