【Java】ランダム値の生成

ゲーム制作する過程でRandomクラスを使用したくなってきたので、一応使用する可能性のあるメソッドだけ確認しておきます。

小数の範囲で乱数を生成する

Randomクラスをインスタンス化し、nextDoubleやnextFloatメソッドを呼び出します。

もちろん呼び出すごとに内容が変動します。

import java.util.Random;

public class Test{
	public static void main(String[] args) {
		Random rand = new Random();
		System.out.println(rand.nextDouble());
	}
}
実行結果

0.272089452972459

真偽値の乱数を生成する

Randomクラスをインスタンス化し、nextBooleanメソッドを呼び出します。

import java.util.Random;

public class Test{
	public static void main(String[] args) {
		Random rand = new Random();
		System.out.println(rand.nextBoolean());
	}
}
実行結果

true

整数の乱数を生成する

Randomクラスをインスタンス化し、nextIntやnextLongメソッド等を呼び出します。

import java.util.Random;

public class Test{
	public static void main(String[] args) {
		Random rand = new Random();
		System.out.println(rand.nextInt());
	}
}
実行結果

106358325

整数の自由な範囲で乱数を生成する

ランダム値は指定した範囲を生成したいことが多いのでnextIntメソッドに引数を指定して範囲を指定してみましょう。

例えばnextInt(10)であれば0~9の間で乱数が生成されます。

import java.util.Random;

public class Test{
	public static void main(String[] args) {
		Random rand = new Random();
		System.out.println(rand.nextInt(10));
	}
}
実行結果

8

さらに値を100~150までを生成したい場合や-25~-10の間を生成したい場合にも対応できます。

import java.util.Random;

public class Test{
	public static void main(String[] args) {
		Random rand = new Random();

		//100~150の間の乱数を生成する
		System.out.println(rand.nextInt(51)+100);

		//-25~-10の間の乱数を生成する
		System.out.println(rand.nextInt(16)-25);
	}
}
実行結果

125
-24

Java

Posted by nompor