как исправить: логический массив для программы со случайным номером лотереи."не могу преобразовать int в логическое значение" - PullRequest
0 голосов
/ 25 февраля 2019

Мне нужно сделать генератор случайных лотерей для класса с логическим массивом.Сначала я сделал это с массивом int, и он работал отлично, но когда я изменил массив int на массив bool, я получил сообщение об ошибке «Несоответствие типов: невозможно преобразовать из int в логическое значение».Мне интересно, как исправить мой код, чтобы это сработало.

    int highestNumber, numsInLottery, randomNum;
    //int[] lottery = new int[numsInLottery];

    System.out.println("Welcome to the Lottery Number Generator!");
    System.out.println("How many numbers are in your lottery?");
    numsInLottery = TextIO.getInt();
    System.out.println("What is the highest number in your lottery?");
    highestNumber = TextIO.getInt();

    boolean[] lottery = new boolean[numsInLottery];

    for(int i = 0; i < numsInLottery; i++)
    {
        randomNum = (int)(Math.random() * highestNumber);
        for(int x = 0; x < i; x++ )
        {

            /*if (lottery[x] == randomNum)
            {
            randomNum = (int)(Math.random() * highestNumber);
            x = -1;
            }*/
        }   
        lottery[i] = randomNum;
        System.out.print(lottery[i] + " ");
    }

        //System.out.print(lottery[i] + " ");
    }
}

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Предполагая, что ваш логический массив будет иметь значения true и false при случайных индексах, вам просто нужно проверить следующее условие:

for(int x = 0; x < i; x++ ){

    if(lottery[x]){
        randomNum = (int)(Math.random() * highestNumber);
        x = -1;
    }
} 
0 голосов
/ 25 февраля 2019

вы присваиваете int вашей лотерее [i] в ​​строке

        lottery[i] = randomNum;

альтернативой может быть сохранение массива int или произнесение

        lottery[i] = randomNum>(highestNumber/2);

, чтобы выиметь логическое значение вместо целого числа

...