Заполнить массив числами от 1000 до 10000-1

297
05 октября 2017, 11:08

Добрый день! Создаю массив целочисленных значений, в него через for при старте программы должны заноситься значения от 1000 до 9999 включительно. Затем я случайным образом по нажатию кнопки выбираю и показываю одно из значений. Размер массива ставлю 10000. В результате я часто получаю значение 0, хотя если вывожу весь массив в консоль, то таких значений там нет. Помогите разобраться! В итоге по нажатию кнопки я должен получить только одно 4х-значное число...

Создаю массив:

public int passArray[] = new int[10000];

Заполняю:

for (int i = 1000; i < passArray.length; i++){             
passArray[i] = i;   
}

Вывожу по нажатию кнопки:

int index;
index = passArray[(int) (Math.random() * passArray.length)];    
System.out.println(Integer.toString(index));

В результате то дает число к примеру 3443, то еще раз нажму дает 5534, а еще раз нажимаю и дает 0, может и еще раз дать 0, в общем не могу понять откуда они берутся... Подскажите!

Answer 1
for (int i = 1000;

А что по-твоему в массиве в элементах с 0 по 999? Вот как раз 0.

int index;
index = passArray[;    
System.out.println(Integer.toString(index));
System.out.println(Integer.toString((int)(Math.random() * 9000) + 1000));
Answer 2

Массив инициализируется нулями. В массиве 10000 элементов, а вы переинициализируете только 9000.

10% шанс получения ноля.

UPDATE:

public int passArray[] = new int[9000];
for (int i = 0; i < passArray.length; i++){             
    passArray[i] = i+1000;   
}

Либо как в ответе Qwertiy.

READ ALSO
Добавление DataTemplate в ListBox (DataTemplateSelector)

Добавление DataTemplate в ListBox (DataTemplateSelector)

Всем доброго времени сутокПытаюсь сделать окно чата через ListBox , DataTemplate, DataTemplateSelector

348
Как с помощью Microsoft Bot Framework сделать кнопки в несколько рядов?

Как с помощью Microsoft Bot Framework сделать кнопки в несколько рядов?

Нужно создать несколько рядов keyboard кнопок с разным их количеством в ряду для TelegramКак сделать один ряд понятно, но не пойму как сделать из этого...

240
c# лагает программа при прорисовке

c# лагает программа при прорисовке

Есть программа по типу игры лабиринта, реализована в windows formsНеобходимо сделать так, чтобы не весь лабиринт был виден сразу (как на рисунке)

337