Foro de elhacker.net

Programación => Java => Mensaje iniciado por: nolasco281 en 27 Abril 2014, 11:14 am



Título: Problema con arreglo
Publicado por: nolasco281 en 27 Abril 2014, 11:14 am
Hola estaba tratando de ingresar datos a un arreglo per no los ingresa

Alquien me podria decir que estoy haciendo mal.

Error
Código
  1. Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException

Código
  1. import java.util.Scanner;
  2.  
  3. class Arreglos
  4. {
  5.    Scanner tecla = new Scanner(System.in);
  6.  
  7.    int Tam;
  8.    int Datos[] = new int[Tam];
  9.  
  10.    void tamaArr()
  11.    {
  12.        System.out.println("Ingrese el tama~no de la lista: ");
  13.        Tam = tecla.nextInt();
  14.  
  15.        for (int i = 0; i <= Tam-1; i++)
  16.        {
  17.            System.out.println("Ingrese los datos en el arreglo: ");
  18.            Datos[Tam] = tecla.nextInt();
  19.        }
  20.    }
  21. }

Código
  1. public class lista {
  2.  
  3.    public static void main(String[] args)
  4.    {
  5.        Arreglos ArreglosOb = new Arreglos();
  6.  
  7.        ArreglosOb.tamaArr();
  8.    }
  9. }
  10.  

segun leei es como si estubiera fuera de indice



Título: Re: Problema con arreglo
Publicado por: Chuidiang en 27 Abril 2014, 13:07 pm
Estas declarando el array así

Código:
int Tam;
int Datos[] = new int[Tam];

Tam no tiene valor, así que por defecto es 0 y estás declarando un array de tamaño cero. Si luego pides por teclado Tam y te lias a pedir valores para el array, te saldrá fuera de rango.

Haz el new int[Tam] después de pedir por teclado la variable Tam.

Se bueno.


Título: Re: Problema con arreglo
Publicado por: nolasco281 en 27 Abril 2014, 15:54 pm
Si tienes razon era eso

Código
  1.    import java.util.Scanner;
  2.  
  3.    class Arreglos
  4.    {
  5.       Scanner tecla = new Scanner(System.in);
  6.  
  7.       int Tam;
  8.  
  9.       void tamaArr()
  10.       {
  11.           System.out.println("Ingrese el tama~no de la lista: ");
  12.           Tam = tecla.nextInt();
  13.  
  14.            int Datos[] = new int[Tam];
  15.  
  16.           for (int i = 0; i <= Tam-1; i++)
  17.           {
  18.               System.out.println("Ingrese los datos en el arreglo: ");
  19.               Datos[Tam] = tecla.nextInt();
  20.           }
  21.       }
  22.    }

Gracias saludos.