平凡エンジニアによる平凡ブログ

平凡インフラエンジニアがスキルアップを目指してプログラミングやクラウドやサーバといったインフラのアウトプットをしていきます!

【java】randomメソッドで数値をランダムに表示させる

今回のテーマ

ランダムに数値を生成し表示させるメソッドrandomメソッドについて 詳しく解説することにする。

使用例

まずは3パターンの使用例をみる。

①0以上1未満の小数値を表示

public class Main {
    public static void main(String[] args) {
        double num = Math.random(); 
        //randomメソッドで生成した数値をnumという変数に入れる
        System.out.println(num);
        //numを表示させる
    }
 }
 
 // 出力(2回実行して、ランダムに小数値が表示されていることがわかります)
 0.17867952000876408
 0.9357066939714715

②0以上100未満の小数値を表示させる

public class Main {
    public static void main(String[] args) {
        double num = Math.random()*100;
        // 0以上1未満の数値に*100をしている
        // つまり0以上100未満の小数値を表示させる
        System.out.println(num);
    }
 }
 
//出力例
95.97728810872077 
1.307684063619996

③1以上101未満の整数値を表示させる

public class Main {
    public static void main(String[] args) {
        double num = Math.random()*100+ 1;
        // ②より+1を追加しているため1以上101未満の小数値を表示
        int number =(int)num;
        // 小数値numを整数値numberに型変換しております。
          ここで詳細は省きます。
        System.out.println(number);
    }
 }
 
 // 出力例
 38
 84

メソッドに関する詳細な説明

メソッドに関してもう少し詳細に見ていくことにする。

Math.random();

・Math
標準に継承されているクラスであり、主に数値処理を実行する
メソッドが含まれていることが特徴です。

参考
Math (Java Platform SE 8)

・random()
Mathクラスで定義されているrandomメソッドのこと
random()とした場合は、0以上で1未満の小数値をランダムに表示させる。

上記使用例のように*100や+1することでランダムに表示させる範囲を決めることができる。

以下の例だと1以上6未満のランダムな整数を表示させている。 つまり+1にて「ランダムで表示させる最初の数値」を *6で「最初の数値から何個目を表示させる」かを示していると解釈できます。

public class Main {
    public static void main(String[] args) {
        double num = Math.random()*6+ 1;
        int number =(int)num;
        System.out.println(number);
    }
 }
 
 //出力例
 1
 3
public class Main {
    public static void main(String[] args) {
        double num = Math.random()*100+ 1;
        // ②より+1を追加しているため1以上101未満の小数値を表示
        int number =(int)num;
        // 小数値numを整数値numberに型変換しております。
          ここで詳細は省きます。
        System.out.println(number);
    }
 }
 
 // 出力例
 38
 84

まとめ

乱数表示はプログラム開発ではよく使用されるため理解しておきましょう。
※ランダムな数値のことを乱数という
例えば1〜6までの数値を表示させるサイコロのプログラムも開発できる。

今回はrandomメソッドに着目したため
メソッドなど型変換などについては解説しておりません。

もしjavaの基本に関して学びたい方は以下の著書がおすすめです。

スッキリわかるJava入門 第3版 スッキリわかるシリーズ