Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
07 Фев 2023
2 мин
4652

Генерация случайных чисел в заданном диапазоне в Java

В программировании на Java очень часто возникает необходимость генерации случайных чисел. Бывает, что нужно сгенерировать случайное число в определенном

Разработка на Java — востребованное направление, такие специалисты будут нужны на рынке еще долго. На курсе «Java-разработчик» от Skypro освоить профессию можно с нуля за 11 месяцев, даже если вы гуманитарий и ничего не знаете об IT. Программа составлена от простого к сложному и адаптирована для новичков. Преподаватели — практикующие специалисты из крупных компаний: «Сбер», «Самокат» и других.

В программировании на Java очень часто возникает необходимость генерации случайных чисел. Бывает, что нужно сгенерировать случайное число в определенном диапазоне. Например, для создания игры, где генерируется случайное число от 1 до 100, и пользователь должен его угадать.

Однако, начинающие разработчики часто сталкиваются с проблемой, что при использовании стандартных методов генерации чисел в определенном диапазоне могут возникнуть ошибки. Например, генерируемое число может выходить за пределы заданного диапазона.

int randomNum = minimum + (int)(Math.random() * maximum);
// Ошибка: `randomNum` может быть больше, чем `maximum`.

Или такой вариант:

Random rn = new Random();
int n = maximum - minimum + 1;
int i = rn.nextInt() % n;
randomNum =  minimum + i;
// Ошибка: `randomNum` может быть меньше, чем `minimum`.

Эффективный способ генерации случайных чисел в заданном диапазоне

Для генерации случайного числа в заданном диапазоне в Java можно использовать класс Random и его метод nextInt(int bound). Этот метод генерирует случайное число в диапазоне от 0 (включительно) до указанного числа (исключительно).

Для генерации числа в диапазоне от minimum до maximum (включительно) можно использовать следующий код:

Random rn = new Random();
int randomNum = rn.nextInt(maximum - minimum + 1) + minimum;

В этом коде, nextInt(maximum - minimum + 1) генерирует случайное число в диапазоне от 0 до maximum - minimum, а прибавление minimum сдвигает этот диапазон так, что минимальное значение становится minimum, а максимальное — maximum.

Такой подход позволяет эффективно и без ошибок генерировать случайные числа в заданном диапазоне в Java.

Освойте Java на курсе онлайн-университета Skypro. Учебе нужно будет уделять всего 10 часов в неделю: сможете совмещать с работой и личными делами. Вас ждут 440 часов теории и практики, мастер-классы с реальными рабочими задачами, опытные преподаватели, кураторы и наставники. За время обучения сделаете два полноценных проекта для портфолио и множество домашних заданий, чтобы отработать навыки.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий