Hola, intento que la salida de este arreglo se imprima a la inversa con un bucle for pero, llevo rompiendome todo el día la cabeza y no consigo nada.
package Boletin9_1;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
double [] numeros=new double [6];
for(int i=0;i<numeros.length;i++){
numeros[i]=Math.floor((Math.random()*50+1));
}
for (int x=6;x>=0;x--){
System.out.println(numeros[x]);
}
}
}
Me tira esta excepción.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at areglosiniciar.Main.main(Main.java:20)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
Hola xD. Posiblemente lo hayas solucionado pero por si acaso.
El array tiene 6 casillas: las casillas 0,1,2,3,4,5. Y has inicializado el segundo bucle en 6(x=6), lo tienes que inicializar en 5 porque no existe la casilla 6.
for (int x=5;x>=0;x--){
System.out.println(numeros[x]);
}
El error menciona un ArrayIndexOutOfBoundsException, lo que quiere decir es que de alguna forma le estas dando un indice que no se existe.
Por lo que donde esta mal es la forma en que recorre el indice.
Del ultimo for tienes que corrergirlo así:
for (int x=6;x>=0;x--){
System.out.println(numeros[x]);
}
for (int x=5;x>=0;x--){
System.out.println(numeros[x]);
}
Esto es por que los indices de un arreglo se comienzan a contar desde el cero, ejemplo:
A = [1,2,3,4,5];
donde A.length es 5, pero el index inicial es A[0] = 1 y asi hasta A[4] = 5
Si es correcto
corneliusjesus, deja de ensuciar posts con respuestas insustanciales.
Saludos
También puedes hacer lo siguiente.
public class Main{
public static void main(String args[]){
new Main();
}
public Main(){
double [] numeros=new double [6];
System.out.println("Numeros");
for(int i=0;i<numeros.length;i++){
numeros[i]=Math.floor((Math.random()*50+1));
System.out.print("["+numeros[i]+"]");
}
System.out.println("\nNumeros invertidos");
for (int x=numeros.length-1;x>=0;x--){
System.out.print("["+numeros[x]+"]");
}
}
}
x=numeros.length-1
Saludos.
Creo q ya te dieron una buena respuesta, recuerda que el ultimo valor de un array , java no te deja utilizarlo por lo que si quieres imprimir un determinado numero de veces un numero, puedes también declarar tu arreglo con un valor mas al que necesites ejm:
double []numeros=new double [7];
Saludos
Muchas gracias :)