Размер шрифта
-
+

Java за неделю. Вводный курс - стр. 24

import java. util. Random;

Здесь надо сделать небольшое отступление. Генератор случайных чисел – это обычная компьютерная программа, жесткий алгоритм, в котором нет места случайностям. Поэтому на самом деле генерируются псевдослучайные числа. Равномерность распределения вероятности по диапазону генерации зависит от качества генератора. Чтобы при каждом запуске программы генератор не выдавал одну и ту же последовательность чисел, его надо инициализировать неким начальным значением, которое является случайным по отношению к программе и не повторяется при запуске. На практике для инициализации генератора часто используют системное время компьютера в миллисекундах. Время запуска программы заранее не определено и никак не связано с системными часами. Поэтому вероятность повторения времени запуска программы с точностью до миллисекунды исчезающе мала.

Итак, создайте новый объект класса Random и инициализируйте его при помощи значения системного времени компьютера в миллисекундах. Пусть это будет новый объект с именем rnd:

Random rnd = new Random(System.currentTimeMillis ());

Чтобы сгенерировать целое число, воспользуйтесь методом nextInt (limit). Этот метод генерирует псевдослучайное целое число в диапазоне от нуля до предела limit, но не включая его. Например, метод nextInt (10) возвратит целое число в диапазоне от 0 до 9 включительно.

Сгенерируйте псевдослучайное число secret в диапазоне от 1 до 10 при помощи метода nextInt () объекта rnd:

int secret = 1 + rnd.nextInt (10);

Окончательный фрагмент кода для генерации псевдослучайного целого числа выглядит так:

Random rnd = new Random(System.currentTimeMillis ());

int secret = 1 + rnd.nextInt (10);

Теперь у вас есть «секретное» случайное число, на которое ссылается переменная secret. Осталось реализовать сравнение секретного значения со значением, которое ввел пользователь. Запрос на ввод значения должен повторяться до тех пор, пока пользователь не угадает.

Разработайте программу самостоятельно, а затем сравните результат с листингом 4.4. Ваш код не обязательно должен совпасть с примером – главное, чтобы он правильно работал.


Листинг 4.4 Пример прерывания цикла

import javax.swing.JOptionPane;

import java. util. Random;

public class Listing4_4 {


public static void main (String [] args) {

Random rnd = new Random(System.currentTimeMillis ());

int secret = 1 + rnd.nextInt (10);

int userData;

String userInput;

while (true) {

// Выводим окно запроса

userInput = JOptionPane.showInputDialog («Угадайте число от 1 до 10»);

// Преобразуем строку в число в явном виде

Страница 24