我想在Java中生成1到10之间的数字.
这是我尝试过的:
Random rn = new Random();
int answer = rn.nextInt(10) + 1;
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉()
在调用nextInt方法时要在括号中放什么以及添加什么?
Mal*_*olm 229
正如文档所述,此方法调用返回"伪随机,均匀分布的int值介于0(包括)和指定值(不包括)之间".这意味着在您的情况下,您将获得0到9之间的数字.所以你已经通过在该号码上添加一个来正确地完成了所有事情.
一般来说,如果你需要从生成数字min
到max
(包括),你写
random.nextInt(max - min + 1) + min
Run Code Online (Sandbox Code Playgroud)
Sca*_*bat 75
执行此操作的标准方法如下:
提供:
并获得最小值和最大值之间的整数,包括在内.
Random rand = new Random();
// nextInt as provided by Random is exclusive of the top value so you need to add 1
int randomNum = rand.nextInt((max - min) + 1) + min;
Run Code Online (Sandbox Code Playgroud)
请参阅相关的JavaDoc.
正如Aurund所解释的,在彼此短时间内创建的随机对象将倾向于产生类似的输出,因此将创建的Random对象保持为字段而不是方法是一个好主意.
小智 19
这将用于生成数字1 - 10.确保在代码顶部导入Random.
import java.util.Random;
Run Code Online (Sandbox Code Playgroud)
如果你想测试它尝试这样的事情.
Random rn = new Random();
for(int i =0; i < 100; i++)
{
int answer = rn.nextInt(10) + 1;
System.out.println(answer);
}
Run Code Online (Sandbox Code Playgroud)
此外,如果您更改括号中的数字,它将创建一个从0到该数字-1的随机数(除非您添加一个当然的,然后它将从1到您输入的数字).