Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida --> Array e Estrutura de Repetição.

Alguém sabe me dizer porque o código abaixo gera este erro:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7 at algoritmos.Teste.main(Teste.java:10)

public class Teste {
    public static void main(String[] args) {
        int[] num = {0, 0, 0, 0, 0, 0, 0};
        int c;
        c = 0;
        while (num[c] != 10  &&  c < 7 ) {
            c++;
        }
        System.out.print(c);
    }
}
2 respostas
public class Teste { 
    public static void main(String[] args) { 
        int[] num = {0, 0, 0, 0, 0, 0, 0};
         int c;
        c = 0;
         while (num[c] != 10 && c < 7 ) { 
            c++;
         } 
        System.out.print(c);
     }
 }

O loop while verifica a condição antes de executar a lógica no bloco. Acontece que na condição do seu loop while

 while (num[c] != 10 && c < 7 )

na última iteração ele vai testar se o num[7] é diferente de 10, só que o seu array tem 7 elementos, isto é, os seus índices vão de 0 até 6, não existindo o num[7], por isso ele dá o ArrayOutOfBoundsException.

solução!

Oi Malcon! Esse erro acontece pois vc está tentando acessar uma posição do seu array que não existe.

Seu array possui 7 elementos, cada elemento tem um índice:

{0,  0,  0,  0,  0,  0,  0}
[0]  [1] [2] [3] [4] [5] [6]

você está tentando acessar o índice 7, que não existe.