Array

2 respostas
M

Aew pessoal…

import java.lang.*;

public class Array {
   public static void main(String argv[]) {
      int[] meuArray;
      meuArray = new int[10];

         for(int i = 0; i <= meuArray.length; i++) {
            meuArray[i] = i;
            System.out.print(meuArray[i] + " | ");
         }
   }
}

Eu uso o netbeans, quando eu compilei este codigo o resultado foi:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 10
at Array.main(Array.java:9)

do 0 ao 9, eu sei o que eh, mais o :
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 10
at Array.main(Array.java:9)
o que significa isso??

valeu ai

2 Respostas

M

faça o seu for assim:

for(int i = 0; i < meuArray.length; i++)

vc esta indo de 0 a 10, e não de 0 a 9!! o valor de meuArray.length é 10

S

Olá,

simples:

você definiu um array com 10 posições:

meuArray = new int[10];

e, na hora de usar, usou 11 posições:

for(int i = 0; i <= meuArray.length; i++) {

Se o array tem 10 posições, meuArray.length retornará 10!

e, entre 0 (int i = 0) e 10, temos 11 posições:

0 - 1ª
1 - 2ª
2 - 3ª
3 - 4ª
4 - 5ª
5 - 6ª
6 - 7ª
7 - 8ª
8 - 9ª
9 - 10ª
10 - 11ª

(é óbvio que sua intenção estava correta, mas java, e qualquer outra linguagem de programação, confiam demais na infalibilidade dos programadores e não levam em conta as intenções)

Criado 16 de novembro de 2004
Ultima resposta 16 de nov. de 2004
Respostas 2
Participantes 3