Сомнения по поводу проверки в массиве тотолото того же числа - PullRequest
0 голосов
/ 28 сентября 2019

Я создаю программу для вставки чисел во ввод.но я хочу, чтобы при записи чисел сначала проверить, совпадает ли число с сохранением в массиве.Если true, предупреждает сообщение, что этот номер выходит, если не продолжить, введите другой номер.но моя проблема, когда попробуй этот же номер показать сообщение, а когда зайди на ввод другого числа, покажи мне сообщение ArrayIndexOutOfBoundsException.это мой кодИ я не могу использовать класс Math Random Only Input.

public static void main(String[] args) {
    System.out.println("Totoloto \n");
    System.out.println("Insira a chave de 1 a 49 do Totoloto");

    int chave[] = new int[6];
    int numero = 0, contador = 0, i = 0;

    while (contador < 6) {
        System.out.println("Insira um número");
        numero = Ler.umInt();

        if (numero > 1 && numero <= 49) {
            for (int j = 0; j < chave.length; j++) {

                if (chave[j] != numero) {
                     chave[i] = numero;
                    i++;


                } else {
                    System.out.println("Os números inseridos já se encontram na chave");
                    break;
                }
            }
        } else {
            System.out.println("A chave deve conter números de 1 a 49 !!!");
            break;
        }
        contador++;
    }
    System.out.println("");
    System.out.print("A chave do Totoloto é ");
    for (int j = 0; j < chave.length; j++) {
        System.out.print(chave[j]);
        System.out.print(" ");
    }

}



##The Error##

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 
Index 6 out of bounds for length 6
at com.ubi.aula03.Aula03ex3.main(Aula03ex3.java:31)

1 Ответ

0 голосов
/ 28 сентября 2019

проверить этот код:

public static void main(String[] args) {

    System.out.println("Totoloto \n");
    System.out.println("Insira a chave de 1 a 49 do Totoloto");
    Scanner reader = new Scanner(System.in);

    int chave[] = new int[6];
    int numero = 0, contador = 0;

    mywhile:
    while (contador < 6) {
        System.out.print("Insira um número [" + contador + "]\t:");
        numero = reader.nextInt();

        if (numero >= 1 && numero <= 49) {

            for (int j = 0; j <= contador; j++) {

                if (chave[j] == numero) {

                    System.out.println("Os números inseridos já se encontram na chave");
                    continue mywhile;
                }
            }

            chave[contador] = numero;
            contador++;
        } else {
            System.out.println("A chave deve conter números de 1 a 49 !!!");
        }
    }

    for (int j = 0; j < chave.length; j++) {
        System.out.print(chave[j]);
        System.out.print(" ");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...