Java ランダムな数値を取得するサンプル(nextInt/random)

Javaのランダムな数値を取得するサンプルです。
Randomクラスの nextIntメソッドまたはMathクラスのrandomメソッドを使用します。

目次

Randomクラスの nextIntメソッド

public  int  nextInt ( int bound )
  • 0から始まるbound個のランダムな数値をint型で返します。
  • nextInt(10)とした場合、0から9の10個の範囲のどれかの値が戻ります。
  • 1~10としたい場合は、nextInt(10)の結果の後に1を足します。
  • 以下はJava8 API仕様のRandomクラスの nextIntメソッドのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/util/Random.html#nextInt-int-

コード

randomメソッドのサンプルです。
10行目は、nextInt(10)で0~9のいずれかを取得しています。
14行目は、nextInt(9)で0~8のいずれかを取得し、1を足して1~9としています。
18行目は、nextInt(8)で0~7のいずれかを取得し、1を足して1~8としています。
22行目は、nextInt(7)で0~6のいずれかを取得し、2を足して2~8としています。

package test1;
import java.util.Random;

public class Test1 {
	public static void main(String[] args) {
				
	        Random rnd = new Random();
	        
	        // 0〜9の乱数
	        int a = rnd.nextInt(10);
	        System.out.println("b=" + a);
	        
	        // 1~9の乱数
	        int b = rnd.nextInt(9) + 1;
	        System.out.println("a=" + b);
	        
	        // 1〜8の乱数
	        int c = rnd.nextInt(8) + 1;
	        System.out.println("c=" + c);
	        
	        // 2〜8の乱数
	        int d = rnd.nextInt(7) + 2;
	        System.out.println("d=" + d);
 	}
}

Mathクラスのrandomメソッド

public  static  double  random()
  • 0~1未満のランダムなdouble型の数値を返します。
  • 最小値から最大値までの範囲の整数を求める場合は、以下の式を使います
    (int)(Math.random() *  a  + b)
  • aは、取得する値の個数をセットします。値は0から始まります。
    →Math.random()*10とした場合、0から9の10個の範囲のどれかの値
  • bは、最初の数字をセットします。
    →Math.random()*10 + 1とした場合、1から10の10個の範囲のどれかの値
  • 以下はJava8 API仕様のMathクラスのrandomメソッドのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#random--

コード

randomメソッドのサンプルです。
7行目は、Math.random()*10で、0~9を取得します。
11行目は、Math.random()*9で、0~8を取得し、1を足して1~9としています。
15行目は、Math.random()*8で、0~7を取得し、1を足して1~8としています。
19行目は、Math.random()*7で、0~6を取得し、2を足して2~8としています。

package test1;

public class Test1 {
	public static void main(String[] args) {

		// 0〜9の乱数
		int a = (int)(Math.random()*10);		
		System.out.println(a);
	        
	        // 1~9の乱数
		int b = (int)(Math.random()*9+1);
		System.out.println(b);
	        
	        // 1〜8の乱数
		int c = (int)(Math.random()*8+1);
		System.out.println(c);
	        
	        // 2〜8の乱数
		int d = (int)(Math.random()*7+2);
		System.out.println(d);

 	}
}

関連の記事

Java べき乗を計算するサンプル(pow)
Java 小数第一位で切り上げるサンプル(ceil)
Java 小数第一位で切り捨てるサンプル(floor)
Java 小数第一位で四捨五入するサンプル(round)




△上に戻る