-
1 - ele testa se 6 é menor que 7--- não é
2 - adiciona + 1
3 - ao fazer c[7] --> dá pau, pois apesar do array ter tamanho 7, é 0 based, ou seja, os índices vão de 0 a 6
-
Concordo com amigo amigo acima
-
realmente se c++ estive-se depois do System.out.print(c); não daria o erro! (pegadinha hen.)
-
Não concordo Anderson, porque o erro está quando é executado a instrução num [c], sendo que o array está na posição 7, que não existe. Fiz o famoso "chinezinho" para testar a questão.
Estaria correta se a instrução c<7 fosse substituída por c<6, considerando que as posições começam a contar a partir de 0.
-
O erro esta em verificar (num [c] != 10 ) antes de ( c -Desse modo quando 'c' = 7 o programa tenta acessar num[7] (que não exite) para testar a condição (num [c] != 10)
Se o while estivesse assim : while( c -Quando c=7 o laço se quebra na primeira condição (7
-
Pegadinha.
O programador deveria ter escrito
"while ( c < 7 && num [c] != 10) {"
Aí como o && é Short Circuit avaliaria a primeira parte e nem tentaria avaliar a segunda. Como ele fez na ordem inversa vai dar erro ao ver o num[7] antes de chegar a verificar c(7) < 7.
Nesse ponto Java é igual a C.
-
b
ArrayOutOfBoundsException é quando uma referencia ao indice do array é alem do que ele contém. É so lembrar que array é definido na compilação, seu tamanho nao muda. Logo, quando verifica seus valores vao ate num[6] se inicia do zero, quando c incrementar a 7, saira do array, causando o erro de arrayoutofboundsexception