Foros del Web » Programación para mayores de 30 ;) » Java »

Error en arreglos unidimensionales

Estas en el tema de Error en arreglos unidimensionales en el foro de Java en Foros del Web. Saludos a todos. Soy nuevo en esto de java, estoy viendo apenas el tema de arreglos, y tengo una duda en un algoritmo que ando ...
  #1 (permalink)  
Antiguo 17/10/2010, 22:23
 
Fecha de Ingreso: julio-2009
Mensajes: 55
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Error en arreglos unidimensionales

Saludos a todos.
Soy nuevo en esto de java, estoy viendo apenas el tema de arreglos, y tengo una duda en un algoritmo que ando realizando.
El codigo que pondre, es de un arreglo unidimensional, el programa en teoria tiene que dar la oportunidad de que el usuario pueda añadir cuantos alumnos del arreglo pueden ser en la lista, y añadir el nombre de cada uno de los alumnos.

Código:
package main;

public class practica {
    public void estudiantes(){
    	int numerodealum,sacar,posicion=1,contador=0;
    	System.out.println("Inserte la cantidad de alumnos");
    	numerodealum=Leer.datoInt();
    	int[] alumnos= new int [numerodealum];
    	while(contador<=numerodealum){
    		System.out.println("Inserte el nombre del estudiante #"+posicion);
    		alumnos[posicion]=Leer.datoInt();
    		posicion=posicion+1;
    		contador=contador+1;
    	}
    }
    public static void main(String args[]){
    	practica menu= new practica();
    	menu.estudiantes();
    }
    }
Al momento de ejecutarlo, me arranca el programa, y me permite añadir los nombres de los alumnos, pero una vez que finaliza el while, me aparece el siguiente error:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at main.practica.estudiantes(practica.java:11)
at main.practica.main(practica.java:18)

A que se debe??
  #2 (permalink)  
Antiguo 18/10/2010, 02:00
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Error en arreglos unidimensionales

Mmm esta práctica parece diseñada para que te des cuenta de como maneja java los arreglos.

En este caso, la posición y el número de alumnos se gestionan de forma diferente. Si un arreglo x tiene n elementos. La posición del primer elemento es 0 y la del último es n-1. Así que ahora con esta información ya puedes corregir tu código.

Recuerda que debes ajustar el contador, la posición y la condición de control de forma que no se salga del índice y se muestre al alumno correcto.

Un saludo
  #3 (permalink)  
Antiguo 18/10/2010, 06:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Error en arreglos unidimensionales

Cita:
java.lang.ArrayIndexOutOfBoundsException: 4
Este mensaje quiere decir que estás accediendo al índice 4 de un array y dicho array es más pequeño que eso. Como dice Fuzzylog, los arrays en Java, como en C, empiezan en 0 así que un array de tamaño cuatro sólo tiene los índices del 0 al 3.

Si te fijas bien en el error, te dice hasta la linea donde estas accediendo al array con el índice erroneo, así que tienes mucha información para depurarlo.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #4 (permalink)  
Antiguo 18/10/2010, 09:07
 
Fecha de Ingreso: julio-2009
Mensajes: 55
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Error en arreglos unidimensionales

Ah vaya! muchas gracias, ya vi el error, lo que no entendia era el mensaje que me daba despues de ejecutarlo.

Gracias, y saludos

Etiquetas: arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:34.