Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package jp.ac.ca.data.create;
- /**
- *
- * @author nuki ここではヒットアンドブローのための ランダムな被りのない4桁の数字を生成するクラス作成する。
- *
- */
- public class CreateRandomNumber {
- /*
- * 乱数の桁数を定数として宣言
- *
- * 他のクラスから見る必要がないのでアクセス修飾子はprivateに設定 他のメソッドなどでオーバーライドされたくもないのでprivateが適当と判断
- * 4桁というのは変わらないので定数で宣言
- */
- private static final int FINAL_NUMBER = 4;
- // このメソッドが外のクラスから呼べないと困るのでアクセス修飾子はpublic
- // インスタンスメソッドではなく、クラスメソッドとして作成したためstaticとしている
- // 戻り値は配列なので配列を指定する
- // 乱数生成に引数を受け取る必要はないので空引数
- public static int[] RandomNumber() {
- // 乱数を生成する
- // int 型の配列arrという変数名を宣言
- int[] arr;
- // 配列の要素数を指定して配列を生成
- arr = new int[FINAL_NUMBER];
- // 配列の添字を0から順に乱数を代入する
- for (int i = 0; i < FINAL_NUMBER; i++) {
- // Mathクラスのrandomメソッドを用いて0.0〜0.9の乱数を生成し、1を足すことで整数にする。
- // 整数なのでdouble型ではなくint型にキャストする
- arr[i] = (int) (Math.random() * 9) + 1;
- // 添字1〜3は前の数値とかぶっていないかの確認
- if (i > 0) {
- // arr[i]の要素をn < i の間の添字の配列要素と被っていないかの確認
- for (int n = 0; n < i; n++) {
- // 26行目で生成した乱数がその前の添字の配列要素と同じでないか確認
- if (arr[i] == arr[n]) {
- // iをデクリメントし28行目のfor文で同じ添字の配列要素をもう一度生成する
- i--;
- break;
- }
- }
- }
- }
- return arr;
- }
- }
Add Comment
Please, Sign In to add comment