2016-01-13 134 views
-1

我不明白为什么它不会产生向上的11为什么int answer = generator.nextInt(10)+ 1;只产生1到10之间的数字?

这里是我的测试代码:

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); 
     } 
    } 
} 
+0

您是否阅读过要调用的方法的文档?你自己的代码中的注释说上限是独占的(“excl”)......如果'nextInt(10)'只能返回一个高达9的值,你会如何得到11的回答,重新加1呢? –

+0

是的,我意识到现在我犯了一个愚蠢的错误。我确实读过它,但由于某种原因它没有沉入。对不起的帖子感到抱歉。 –

+0

你按照这个帖子它已经讨论http://stackoverflow.com/questions/363681/generating-random-integers-in-a-range-with-java http://stackoverflow.com/questions/20389890/generating- a-random-number-between-1-and-10-java –

回答

6

阅读的Javadoc。 rn.nextInt(10)产生从0编号,以9.添加1给出了从1到10

返回0之间(含)的伪随机均匀分布的int值的范围和指定值(不包括)

相关问题