Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Duda iniciación java con el Main

Buenas tarde,

estoy empezando con Java y haciendo algunos ejercicios tengo la siguiente duda. Me piden que haga una búsqueda en un array de 7 elementos de tipo entero, un número entero. He hecho la clase búsqueda así:

public class Busqueda {

int busqueda(int[] A, int n, int v) {
A[1]=1;
A[2]=5;
A[3]=8;
A[4]=15;
A[5]=12;
A[6]=30;
A[7]=20;
int pos = 0;
int i = 1;
while ((i <= n) && (pos == 0)) {
if (A[i] == v) {
pos = i;
}
i += 1;
}
if(pos==0){
System.out.println("No ha sido encontrado");
}else{
System.out.println("Ha sido encontrado");
}
return pos;
}
}

y la clase main la he hecho así:

public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Ricerca r = new Ricerca();
int A[]= new int [7];
r.ricerca(A, 7, 21);
}
}

Lo compilo perfectamente pero al ejecutar me sale éstos errores:

run:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at Ricerca.Ricerca.ricerca(Ricerca.java:20)
at Ricerca.Main.main(Main.java:19)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

¿Podéis echarme un cable amigos? No sé a qué se debe mi error. Saludos y gracias.

marzo 26, 2014 | Registered Commenterpedritobnk90

Los arrays en Java tienen los índices en el rango 0..longitud-1
Por eso te lanza esa excepción.

marzo 26, 2014 | Registered Commenterchoces

Gracias por la rápida respuesta, he realizado los cambios y va perfecto. Muchísimas gracias! :-D

marzo 26, 2014 | Registered Commenterpedritobnk90