Добрый день! Создаю массив целочисленных значений, в него через 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, в общем не могу понять откуда они берутся... Подскажите!
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));
Массив инициализируется нулями. В массиве 10000 элементов, а вы переинициализируете только 9000.
10% шанс получения ноля.
UPDATE:
public int passArray[] = new int[9000];
for (int i = 0; i < passArray.length; i++){
passArray[i] = i+1000;
}
Либо как в ответе Qwertiy.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей