Я хочу создать число от 1 до 10 в Java.
Вот что я пробовал:
Random rn = new Random();
int answer = rn.nextInt(10) + 1;
Есть ли способ сказать, что помещать в круглую скобку ()
при вызове метода nextInt и что добавить?
Я хочу создать число от 1 до 10 в Java.
Вот что я пробовал:
Random rn = new Random();
int answer = rn.nextInt(10) + 1;
Есть ли способ сказать, что помещать в круглую скобку ()
при вызове метода nextInt и что добавить?
Как в документации, этот вызов метода возвращает "псевдослучайное равномерно распределенное значение int между 0 (включительно) и указанным значением (эксклюзивный )". Это означает, что вы получите номера от 0 до 9 в вашем случае. Итак, вы сделали все правильно, добавив один к этому номеру.
Вообще говоря, если вам нужно сгенерировать числа от min
до max
(включая оба), вы пишете
random.nextInt(max - min + 1) + min
Стандартный способ сделать это:
/**
* Returns a psuedo-random number between min and max, inclusive.
* The difference between min and max can be at most
* <code>Integer.MAX_VALUE - 1</code>.
*
* @param min Minimim value
* @param max Maximim value. Must be greater than min.
* @return Integer between min and max, inclusive.
* @see java.util.Random#nextInt(int)
*/
public static int randInt(int min, int max) {
// Usually this can be a field rather than a method variable
Random rand = new Random();
// nextInt is normally exclusive of the top value,
// so add 1 to make it inclusive
int randomNum = rand.nextInt((max - min) + 1) + min;
return randomNum;
}
См. соответствующий JavaDoc.
Как объясняет Аурунд, случайные объекты, созданные за короткое время друг от друга, будут иметь тенденцию производить аналогичный вывод, поэтому было бы неплохо сохранить созданный случайный объект как поле, а не в методе, как у меня сделано (только для пояснения).
Источник: fooobar.com/questions/277/...
Это будет работать для генерации числа 1 - 10. Убедитесь, что вы импортируете Random в верхней части вашего кода.
import java.util.Random;
Если вы хотите проверить это, попробуйте что-то вроде этого.
Random rn = new Random();
for(int i =0; i < 100; i++)
{
int answer = rn.nextInt(10) + 1;
System.out.println(answer);
}
Также, если вы измените число в скобках, оно создаст случайное число от 0 до этого числа -1 (если вы не добавите один из них, как у вас, тогда он будет от 1 до введенного вами числа).