VB.NETで乱数を取得する方法について書いています。
乱数を取得するにはRandomクラスのインスタンスを作って、Nextメソッドを呼び出します。
Randomクラスの公式ドキュメントはこちらにあるので確認してみてください。
乱数を取得する(Randomクラス)
RandomクラスからNextメソッドを呼び出すことで、乱数を取得できます。
例えば、下記のように使うことができます。
Dim rand As New Random()
Dim randomNumber = rand.Next
Console.WriteLine(randomNumber) ' 687979753
New
キーワードを使って、Random
クラスからrand
オブジェクトを作成しました。
次の処理で作ったrand
オブジェクトのNext
を呼び出して、ランダムな値を取得しています。
実行して出力すると、「687979753
」が出力されました。
乱数なので実行するたびに結果は変わります。
取得できる最大値は?
Random.Next
で取得できるのは、「0」からInt32.MaxValueで出力される数値までになります。
Int32.MaxValueは筆者の環境で確認すると、下記の数値が出力されました。
Console.WriteLine(Int32.MaxValue) ' 2147483647
「2,147,483,647
」が出力されました。
「0
」から「約21億
」までの範囲の値になります。
指定した最大値までの乱数を取得する
Next
メソッドに最大値を渡すことで、「0」から最大値未満までの値が取得できます。
例えば、下記のように使えます。
Dim rand = new Random()
Dim randomNumber = rand.Next(8)
Console.WriteLine(randomNumber) ' 5
先ほどと同様に、Random
クラスからrand
オブジェクトを作成しました。
その次の行でNext
に対して、数値の「8」を渡しています。
これで、指定した「8」より小さい「0」以上のランダムな数値が返ってきます。
引数で渡した「最大値未満になる」という挙動に気をつけましょう。
指定した最小値から最大値までの乱数を取得する
Next
メソッドに、最小値と最大値を渡すと、最小値から最大値未満までの値が取得できます。
例えば、下記のように使えます。
Dim rand = new Random()
Dim randomNumber = rand.Next(2, 6)
Console.WriteLine(randomNumber) '2
先ほどと同様にrand
変数からNextを呼び出していますが、今回は最小値と最大値を引数として渡しています。
第1引数が最小値で、第2引数が最大値になります。
今回は最小値は「2
」を渡して、最大値は「6
」を渡しています。
そのため、「2
」から「5
」までの値がランダムで取得できます。
プログラムを実行すると「2」が取得できました、こちらも実行するたびに結果は変わります。
「最大値未満になる」という挙動に気をつけましょう。
乱数(ランダム値)を取得する方法まとめ
今回はVB.NETで乱数(ランダム値)を取得する方法について書きました。
.NETで用意されているクラスなので、C#でも同様に使用することができます。
記事の内容をまとめると、下記のようになります。
・Nextメソッドに引数を渡さないときには、「0」からInt32.MaxValueまでの値が取得できる。
・Nextメソッドに最大値を渡したときには、「0」から最大値未満までの値が取得できる。
・Nextメソッドに最小値と最大値を渡したときには、最小値から最大値未満までの値が取得できる。
コメント