SoloCodigo

Programación General => Java => Mensaje iniciado por: dohko9 en Viernes 16 de Octubre de 2009, 02:02

Título: Error
Publicado por: dohko9 en Viernes 16 de Octubre de 2009, 02:02
Hola soy nuevo en java y haciendo mi primer intento en java
import java.util.*;
public class Miclase {
   int v[]=new int [40];
   //v=new int[40];
   Miclase()
   {
      for (int i=0;i<=v.length;i++)
       {
          v=0;
       }
   }
   
   //carga del vector
    public void cargar()
    {
       Random ran=new Random();
       for (int i=0;i<=v.length;i++)
       {
          v=ran.nextInt(100);
       }
    }
    //mostrar
    public void mostrar()
    {
       for (int i=0;i<=v.length;i++)
       {
          System.out.println(v);
       }    
    }
   
   public static void main(String[] args)
   {
      //int vec[];
      //vec=new int[40];
      Miclase a;
      a=new Miclase();
      a.cargar();
      a.mostrar();

   }

}
me sale esto :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 40
   at Miclase.<init>(Miclase.java:9)
   at Miclase.main(Miclase.java:36)
Título: Re: Error
Publicado por: shadow_rev en Viernes 16 de Octubre de 2009, 15:59
Cita de: "dohko9"
    public void mostrar()
    {
       for (int i=0;i<=v.length;i++)
       {
          System.out.println(v);
       }    
    }
   
La condición i <= v.length es incorrecta, ya que el índice igual al tamaño del array no existe en el mismo; me explico, si tienes un array de 9 posiciones, los índices van desde el 0 hasta el 8. Intentalo poniendo i < v.length

:suerte:
Título: Re: Error
Publicado por: dohko9 en Viernes 16 de Octubre de 2009, 20:57
Gracias por la ayuda