私はJavaで1から10までの数を生成したいです。
これが私が試したものです:
Random rn = new Random();
int answer = rn.nextInt(10) + 1;
NextIntメソッドを呼び出すときに()
を括弧に入れて何を追加するのかを指示する方法はありますか?
ドキュメンテーション が言っているように、このメソッド呼び出しは "0(包括的)と指定された値(排他的)の間の擬似乱数、一様に分布したint値"を返します。これはあなたのケースでは0から9までの数字を取得することを意味します。それで、あなたはその数に1を加えることによってすべてを正しくしました。
一般的に言って、もしあなたがmin
からmax
(両方を含む)までの数を生成する必要があるならば、あなたは書く
random.nextInt(max - min + 1) + min
これを行うための標準的な方法は次のとおりです。
提供する:
そして、最小値と最大値の間の整数を返します。
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;
関連する JavaDoc を参照してください。
Aurundが説明したように、互いに短時間で作成されたRandomオブジェクトは同様の出力を生成する傾向があるため、作成されたRandomオブジェクトをメソッドではなくフィールドとして保持することをお勧めします。
これは1から10の数字を生成するのに役立ちます。コードの先頭にRandomをインポートしてください。
import Java.util.Random;
テストしたい場合は、このようなことを試してください。
Random rn = new Random();
for(int i =0; i < 100; i++)
{
int answer = rn.nextInt(10) + 1;
System.out.println(answer);
}
また、括弧内の数字を変更すると、0からその数字-1までのランダムな数字が作成されます(もちろん、自分で追加しない限り、1から入力した数字まで)。