Indefinite error when executing the program

0

Hi, I had this error in the eclipse IDE

Here all the code of the program:

package paquete;
import java.util.Random;
import java.util.Scanner;

public class Programa { 
    Scanner entrada = new Scanner(System.in);
    Random aleatorio = new Random();

  public void iniciar(){
      int jugada[] = new int[5];
      int deoro[] = new int[5];
      int revancha[] = new int[5];
      bienvenido(deoro,jugada);
      jugada(jugada);
      sorteodeoro(deoro);
      revancha(revancha);
      ganadordeoro(deoro,jugada);
} 


public void bienvenido(int deoro[], int jugada[]){
    int seleccion;
       do{
       System.out.println("Bienvenido,Indique que método de apuesta quiere realizar:");
       System.out.println("");
       System.out.println(" 1- Apuesta Simple");
       System.out.println("");
       System.out.println(" 2- Apuesta Múltiple");
       System.out.println("");
       System.out.println(" 3- Salir");
    seleccion = entrada.nextInt();
       }while(seleccion>3 || seleccion<1);
    switch (seleccion){

    case 1: //Simple
        int opcion2=0;
        System.out.println("Indique el tipo:");
        System.out.println("");
        System.out.println(" 1- Común:20$ ");
        System.out.println("");
        System.out.println(" 2- Revancha 30$ ");
        System.out.println("");
        System.out.println(" 3- Salir");
        opcion2 = entrada.nextInt();
        switch (opcion2){

        case 1: 
            break;
        case 2: 


            break;  
        }
        break;
    case 2: //multiple
        seleccion=3;
        break;
    case 3:
        System.out.println("El programa ha terminado.");
        System.exit(1); 
        break;
     }     
    }
public void jugada(int[] jugada){
    int bandera=0;
    System.out.println("Ingresa la jugada: ");
    for (int i=0;i<jugada.length;i++) {
        jugada[i] = entrada.nextInt();
        do{
        if (jugada[i] <=0 ||jugada[i]>= 49){
            System.out.println("Su jugada requiere numeros desde el 1 al 48,por favor escriba otro número:");
            jugada[i] = entrada.nextInt();
            bandera=0;  
        }
        }while(bandera !=0);

        }


    System.out.println("Su jugada es: "+jugada[0]+","+jugada[1]+","+jugada[2]+","+jugada[3]+","+jugada[4]);

   }
public void sorteodeoro(int deoro[]){
    for (int e=0;e<deoro.length;e++) {
    deoro[e] = 1 + aleatorio.nextInt( 48 );
    }
    System.out.println("Pozo de Oro : " +deoro[0]+","+deoro[1]+","+deoro[2]+","+deoro[3]+","+deoro[4]+ " Bolilla Extra : " +deoro[5]);
}

public void revancha(int[] revancha){
    for (int e=0;e<revancha.length;e++) {
    revancha[e] = 1 + aleatorio.nextInt( 48 );
    }
    System.out.println("Pozo Revancha: " +revancha[0]+","+revancha[1]+","+revancha[2]+","+revancha[3]+","+revancha[4]);
}
public int ganadordeoro(int sorteo[], int jugada[]) {
    int aciertos=0;
    int extra=0;
    int ganado=0;
    for (int i=0;i<jugada.length;i++){
        for (int j=0;j<sorteo.length;j++){
            if (jugada[j] == sorteo[i]){
                aciertos++;
            }
            if (jugada[i] == sorteo[6]){
                extra++;
            }
        switch (aciertos){
        case 0:
            System.out.println("No has acertado ninguna bolilla. Ganado:0$");
        break;
        case 1:System.out.println("Has acertado una bolilla. Ganado:0$");
        break;
        case 2:
             if (aciertos ==2 && extra ==1){
                 System.out.println("Has acertado dos bolillas más la extra. Ganado:80$");
                 ganado =+ 80;
             }
             else{
             if (aciertos ==2){
                 System.out.println("Has acertado dos bolillas. Ganado:30$");
                 ganado =+ 30;
             }
             }
        break;
        case 3:
            if (aciertos ==3 && extra == 1){
                System.out.println("Has acertado tres bolillas más la extra. Ganado:800");
                ganado =+ 800;
            }
            else{
            if (aciertos ==3 ){
                System.out.println("Has acertado tres bolillas. Ganado:200$");
                ganado =+ 200;
            }
            }
        break;
        case 4:
            if (aciertos ==4 && extra == 1){
                System.out.println("Felicidades!!! eres el ganador del pozo de plata. Ganado:400.000$");
                ganado =+ 400000;
            }
            else{
            if (aciertos ==4 ){
                System.out.println("Has acertado cuarto bolillas. Ganado:4000$");
                ganado =+ 4000;   
            }
            }
            break;
        case 5:
            System.out.println("Felicidades!!! eres el ganador del pozo de oro. Ganado:4.299.224$");
            ganado =+ 4299224;
            break;
        }
        }

    }
    return(aciertos);
}
public int revancha(int sorteo[], int jugada[]) {
    int aciertos=0;
    int dinerorevancha=20530224;
    for (int i=0;i<jugada.length;i++){
        for (int j=0;j<sorteo.length;j++){
            if (jugada[j] == sorteo[i]){
                aciertos++;
            }
            }
        switch (aciertos){
        case 5:
            System.out.println("Felicidades!!! eres el ganador del pozo revancha. Ganado:"+dinerorevancha);
            break;
        }
    }
    return(aciertos);
}




}
    
asked by Franco Dalmaso 23.10.2017 в 04:16
source

1 answer

1

It is not an undefined error, it is an exception ArrayIndexOutOfBoundsException , you are trying to access the index 5 of your array deoro ( deoro[5] ) in line 87. Your array is size 5, remember that when indicating the size to an array this starts from scratch, in this case if we indicate 5 we would have spaces from 0 to 4 ... you are indicating that you access deoro[5] that does not exist or is out of bounds (ArrayOutOutOfBounds), you would have to initialize your size 6 array so you can access that space (from 0 to 5).

Change int deoro[] = new int[5]; to int deoro[] = new int[6];

    
answered by 23.10.2017 / 04:27
source