Why does int answer = generator.nextInt(10) + 1; only produce numbers between 1 and 10?
我不明白为什么它不会产生超过11。
这是我的测试代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import java.util.Random;
public class randomNumberTest
{
public static void main (String[] args )
{
Random rn = new Random();
//tests random number generator (between 1(inc) and 10(excl))
for(int i =0; i < 100; i ++)
{
int answer = rn. nextInt(10) + 1;
System. out. println(answer );
}
}
} |
-
您是否阅读了所调用方法的文档? 您自己的代码中的注释表示上限是独占的("excl")...如果nextInt(10)只能返回最多9的值,并且您要添加1,那么您希望得到11的答案 那个?
-
是的,我意识到现在我犯了一个愚蠢的错误。 我确实读过它,但它并没有因为某种原因而陷入困境。 对不起的帖子感到抱歉。
-
你关注这篇文章已经讨论过stackoverflow.com/questions/363681/…stackoverflow.com/questions/20389890/…
-
@SeanM - 如果你认为它是一个糟糕的帖子,你总是可以使用问题下的链接删除它。 欢迎来到StackOverflow!
-
谢谢你的热烈欢迎啊哈哈。 我有很多要学习的! 不幸的是我不能再删除它了。
阅读Javadoc。 rn.nextInt(10)生成0到9之间的数字。添加1会给出1到10之间的范围。
Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)