Boa noite, pessoal.
Estou com um problema com uma exceção do tipo "ArrayIndexOutOfBoundsException" por causa de um vetor. Estou tentando passá-lo como argumento de um método, mas está dando erro e não sei resolver o problema. Será que alguém pode dar uma olhada no código abaixo e me dizer o que está errado?
O código completo é bem maior mas para simplificar a vida de vocês eu resumi ele no problema de fato. O método "vconc" devolve a maior sequência de uns em um vetor de tamanho 6, por exemplo:
Se o método receber o vetor {1,0,1,1,1,0} ele retornará 3, pois 3 é a maior sequência de uns.
import javax.swing.JOptionPane;
public class Main {
public static int vconc(int[] flag) {// Função onde ocorre o problema.
int up, consc, comp, acum;
consc = 0;
comp = 0;
acum = 0;
for (int col = 0; col < 6; col++) {
while (flag[col] == 1) {// O erro está neste laço, mas não consegui encotrar.
acum++;
col++;
}
if (acum > comp) {
consc = acum;
comp = acum;
acum = 0;
} else {
consc = comp;
acum = 0;
}
}
return consc;
}
public static void main(String[] args) {
try {
int[] flag = new int[6];
int comp = 0;
for (int i = 0; i < 6; i++) {// Necessário para setar o valor 1 em todas as posições do vetor.
flag[i] = 1;
}
// Aqui eu apaguei parte do código desnecessário de ser mostrado.
comp = vconc(flag);// Se eu não chamar esta função o programa roda sem problema.
// Aqui eu apaguei parte do código desnecessário de ser mostrado.
} catch (ArrayIndexOutOfBoundsException ex) {
JOptionPane.showMessageDialog(null, "Erro com vetor.", "Erro", JOptionPane.ERROR_MESSAGE);
}
}
}
Obrigado.