Загрузка...

Random в Java

Попросите у Java случайное число в небольшом диапазоне и напечатайте его. В Dice.java импортируйте java.util.Random, оставьте public-класс Dice, создайте Random rng = new Random(42);, сохраните int roll = rng.nextInt(6) + 1; и напечатайте roll. Скомпилируйте через javac Dice.java и запустите java Dice. При seed 42 экран должен показать 3. Второе демо печатает два броска с одного генератора, и экран показывает 3, затем 4. Summary оставьте для следующей страницы — этот урок про случайные числа с фиксированным seed для практики, а не про итог всего курса.

Один бросок с seed

Страница dates зафиксировала календарный день. Эта страница просит бросок. Откройте Dice.java. Оставьте имя public-класса Dice. Удалите оставшиеся демо дат Stamp, если они закрывают историю Random, суммы форматирования Yard, файлы именования и любой клавиатурный Scanner. Программа не должна ждать ввода с клавиатуры.
Добавьте import вверху файла:
import java.util.Random;
Внутри Dice.main создайте генератор с seed, чтобы каждый запуск этого учебного файла повторял одно и то же первое значение:
Random rng = new Random(42);
int roll = rng.nextInt(6) + 1;
System.out.println(roll);
Один лишь nextInt(6) вернул бы 0…5. Добавление 1 сдвигает диапазон к 1…6, как у шестигранной кости. Seed 42 не магия — он лишь фиксирует последовательность для этого урока, чтобы квиз и экран совпали. Вы не угадываете новое число каждый раз, когда читаете страницу.

Dice one seeded roll prints 3

java
import java.util.Random;

public class Dice {
    public static void main(String[] args) {
        Random rng = new Random(42);
        int roll = rng.nextInt(6) + 1;
        System.out.println(roll);
    }
}

Из папки, где лежит Dice.java, выполните javac Dice.java. Когда скобки, фигурные скобки и точки с запятой согласованы, javac не пишет собственной строки. Затем запустите java Dice — не java Dice.java. На команде запуска не добавляйте окончание .java. В файле оставьте один public-класс, чтобы имя совпадало с Dice.
Экран показывает 3. Пройдите запуск один раз по шагам. Java начинает в Dice.main. Конструктор запоминает seed 42. Первый вызов nextInt(6) берёт значение из 0…5, затем + 1 даёт 1…6. С этим seed первый бросок становится 3. Печать выводит 3.
Пока смотрите на экран, сформулируйте правило для начинающего: импортируйте Random, при необходимости повторяемого демо создавайте генератор с seed, для диапазона как у кости вызывайте nextInt(6) + 1, печатайте бросок. Не придумывайте на этой странице главу Summary. Summary ждёт следующий урок. Не убирайте + 1, если вам нужны значения от 1 до 6.
Если вы всё ещё видите 2026-03-15 из оставшегося файла дат Stamp, переключитесь на учебный файл Random и снова запустите java Dice. Если javac жалуется, что Random не найден, проверьте строку import вверху Dice.java.

Второй бросок тем же генератором

Один бросок доказывает диапазон. Второй вызов на том же объекте Random продолжает последовательность. Оставьте тот же конструктор с seed. Напечатайте два броска:
System.out.println(rng.nextInt(6) + 1);
System.out.println(rng.nextInt(6) + 1);
При seed 42 первая печать по-прежнему 3. Вторая печать — 4. Оба значения остаются внутри 1…6. Генератор помнит, где он остановился; не создавайте заново new Random(42) между этими двумя строками, если хотите следующее значение той же последовательности.

Dice two seeded rolls print 3 then 4

java
import java.util.Random;

public class Dice {
    public static void main(String[] args) {
        Random rng = new Random(42);
        System.out.println(rng.nextInt(6) + 1);
        System.out.println(rng.nextInt(6) + 1);
    }
}

Скомпилируйте через javac Dice.java и снова запустите java Dice. Экран показывает 3, затем 4. Пройдите запуск один раз по шагам. Тот же seed запускает последовательность. Первый nextInt(6) + 1 печатает 3. Второй вызов идёт дальше и печатает 4. Ничто не ждёт клавиатуру. Ничто не хранит календарный день.
Держите два демо как две учебные формы. Сначала докажите один бросок с seed. Затем докажите два броска подряд. В обеих формах один и тот же import и тот же seed. Вторая форма лишь добавляет ещё один вызов nextInt.
Если перед каждой печатью вы снова создаёте new Random(42), каждая строка начинает последовательность заново, и вы можете увидеть 3 дважды. Это другая привычка. На этой странице для демо с двумя бросками сохраняется один генератор, чтобы вторая строка шла дальше.

Random — не календарь и не Summary

Dates хранил фиксированный день, который можно было печатать и разбирать. Random тянет случайные числа из диапазона. Summary закроет путь курса на следующей странице. Сегодня не смешивайте эти три задачи в одном файле для начинающих.
Без seed первый бросок при каждом запуске может отличаться. Для игр позже это нормально. В этом уроке используется seed 42, чтобы учебный экран и квиз разделяли один ответ. В любом случае вы учите тот же вызов nextInt.
Когда import отсутствует, javac падает до любой строки на экране. Когда вы забываете + 1, может появиться 0, а это не стандартная грань кости. Сохраните import, сохраните сдвиг и запускайте java Dice, пока демо с одним броском не покажет 3 или демо с двумя — 3, затем 4.
Если рядом всё ещё лежат демо дат, держите их как историю. Для этого урока запускайте учебный файл Random, чтобы экран показывал случайные числа в диапазоне, а не 2026-03-15. Если javac ругается на дублирующиеся public-классы, оставьте public только у Dice.

Диапазон, seed и привычка + 1

nextInt(6) означает шесть возможных стартовых значений: 0, 1, 2, 3, 4 и 5. Выражение nextInt(6) + 1 отображает их в 1, 2, 3, 4, 5 и 6. Произнесите это соответствие вслух один раз, глядя на код. Аргумент границы — это число стартовых значений, а не наивысшая грань после сдвига.
Seed фиксирует, какой путь по этим граням вы увидите первым в этом учебном файле. Смена seed меняет последовательность. Отсутствие seed меняет последовательность между запусками. Для оцениваемой практики на этой странице держите 42, чтобы первая грань оставалась 3.
Не считайте Random заменой LocalDate. Не считайте бросок правилом отступа форматирования. Каждая прежняя страница держала свою работу. Эта страница держит только случайные числа.

Перед Summary

Вы можете импортировать Random, создать new Random(42), бросить nextInt(6) + 1, увидеть 3 на одном запуске и 3, затем 4 на демо с двумя бросками. Скомпилируйте Dice.java и запустите java Dice для выбранных демо. Диапазон остался 1…6; seed стабилизировал последовательность для обучения. Следующая страница — Summary, где вы оглядываетесь на путь Java.
Держите демо костей с seed как ясную пару про случайные числа. Когда практикуете Random, не смешивайте на этой странице файлы дат. Не подключайте файлы Summary, пока не дойдёте до того урока. Эти три привычки — контрольная точка перед переходом дальше. Когда экран одного броска показывает 3 или экран двух бросков — 3, затем 4, Random выполнил свою работу в этом уроке, и вы готовы к следующей теме про Summary.
Последний проход по папке: один public Dice, import на месте, new Random(42), nextInt(6) + 1, без ожидания клавиатуры, без навязанных календарных типов. Ещё раз запустите javac Dice.java и java Dice на демо, которое держите открытым. Если экран по-прежнему показывает 3 или 3, затем 4, форма Random надёжна, и курс может перейти к Summary на следующей странице. На каждом чтении держите одну ясную привычку про случайность, чтобы каждый проход учил ту же карту.

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
5
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

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