2016-01-13 34 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值的範圍和指定值(不包括)