2013-11-26 27 views
-5

今天我得到了一个非常简单的问题。简单的java rand()语法

Random r = new Random(); 
r.nextInt(50) 

此代码是否返回数字从0到49或从0到50(包括)

怎么abaut这一个?

Random r = new Random(); 
10 + r.nextInt(50) 

从10至60(包括)?

+2

当您查看Random#nextInt()的文档时,您发现了什么? – GriffeyDog

+0

这里没有语法问题,只是关于Javadoc已经回答的语义问题的一个小问题。 – EJP

回答

3

这在the docs for nextInt(int n)直接回答(强调):

返回一个伪随机均匀分布的int值介于0(含)和指定值(独家

的参数严格大于将要返回的最大整数。

r.nextInt(50) 

可能返回0并可能返回49,但不会返回50.同样,

10 + r.nextInt(50) 

可能是59,但绝不是60

0

the documentation,这是0..n排斥。之间

下一个伪均匀分布的int值0(含)和N(独家)从此随机数生成器的序列

所以,如果你想10..60包容性,使用以下代码:

10+r.nextInt(51);