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

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();
  
     }
}

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

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

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

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!!!

[quote=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!!![/quote]

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.

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

[quote=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[/quote]

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.