【JAVA】レッスン1-05:乱数を生成しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:import文

この記事の練習問題で使用する知識:
丸暗記構文入力と出力の基本コメントの書き方変数と定数算術演算子文字列の操作import文

<<前の問題 問題集Top 次の問題>>

JAVAの「インポート文」とは

この章ではJAVAにおける「インポート文」の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。

プログラム内で他のクラスやライブラリの機能を利用したい場合、Javaではimport文を使ってそれらをインポートする必要があります。

import文はプログラムの先頭に記述され、Java標準ライブラリや他のパッケージから便利な機能を追加できます。

本節ではimport文を使って乱数生成を行う方法について学びます。

import文とは?

Javaのimport文は外部のクラスやパッケージの機能を簡単に使えるようにするための文法です。

import文を使うことで必要なクラスを呼び出し、簡単に利用できるようになります。

特に乱数生成に必要なjava.util.Randomや、ユーザーからの入力を受け取るjava.util.Scannerクラスなどをインポートする際に便利です。

import文の使用例

実際にimport文を使ってRandomクラスをインポートし、乱数を生成する例を見てみましょう。

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random random = new Random();  // Randomクラスのインスタンスを作成
        int randomNumber = random.nextInt(10);  // 0から9までの乱数を生成
        System.out.println("生成された乱数: " + randomNumber);
    }
}

このコードではimport java.util.Random;というimport文によってRandomクラスがインポートされています。

これによりRandomクラスのインスタンスを作成し、nextInt()メソッドを使って0から99の範囲で乱数を生成しています。

インスタンスについては第4章で詳細に勉強します。

今は細かいことは考えずに、ランダムな数値を生成するために必要な構文を丸暗記しましょう。

Scannerクラスについて

また、これまでの記事でも見てきたように、ユーザーからの入力を受け取るためにはScannerクラスを使用します。

このクラスもjava.utilパッケージ内にあるため、以下のようにimport java.util.Scanner;を使ってインポートします。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);  // Scannerクラスのインスタンスを作成
        System.out.print("数字を入力してください: ");
        int userInput = scanner.nextInt();  // ユーザーからの入力を取得
        System.out.println("入力された数字: " + userInput);
    }
}

この例ではScannerクラスを使ってユーザーから数値を受け取り、表示しています。

Scannerクラスもimport文を使ってインポートすることで、プログラムの中で簡単に使えるようになります。

import文の応用:ランダム生成とユーザー入力を組み合わせる

次にRandomクラスとScannerクラスを組み合わせ、ユーザーが指定した範囲で乱数を生成するプログラムを紹介します。

import java.util.Random;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("乱数の上限を入力してください: ");
        int upperLimit = scanner.nextInt();  // ユーザーから上限を取得

        Random random = new Random();
        int randomNumber = random.nextInt(upperLimit);  // 0からupperLimit-1の乱数を生成
        System.out.println("生成された乱数: " + randomNumber);
    }
}

このプログラムではRandomクラスとScannerクラスの両方をインポートし、ユーザーが指定した範囲で乱数を生成しています。

これにより、ユーザーが入力した値を活用し、柔軟な乱数生成が可能となります。

まとめ

Javaのimport文を使うことで外部のクラスをインポートし、プログラムに簡単に組み込むことができます。

特にRandomクラスを用いると乱数生成が非常に簡単に行えるため、ゲームやシミュレーションなど多くの場面で活用できます。

またユーザー入力の処理にはScannerクラスが便利です。import文を使いこなすことで、Javaプログラムの可能性を広げることができます。

練習問題1-5:乱数生成とユーザー入力を使ったプログラムを作成しよう

Javaのimport文を使用し、他のクラスをプログラム内で利用できるようにする方法を学びましょう。

この問題ではユーザーが入力した数値とプログラムが生成する乱数を使って、二つの数の合計を表示するプログラムを作成します。

この問題の要件

以下の要件に従ってコードを完成させてください。

  1. import文を使ってjava.util.Scannerjava.util.Randomクラスをインポートすること。
  2. Scannerクラスを使ってユーザーからの整数入力を受け取り、その値を変数userNumberに格納すること。
  3. Randomクラスを使って1から100の間で乱数を生成し、その値を変数randomNumberに格納すること。
  4. ユーザーが入力した数と生成された乱数の合計を計算し、以下の形式で画面に表示すること:
    • 「あなたが選んだ数: (ユーザーが入力した数)」
    • 「生成されたランダムな数: (生成された乱数)」
    • 「二つの数の合計: (合計)」

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

1から100の間で好きな数字を入力してください: 45
あなたが選んだ数: 45
生成されたランダムな数: 67
二つの数の合計: 112

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)

1:java.util.Randomクラスをインポート
2:java.util.Scannerクラスをインポート
3:Mainクラスの定義
  □ メインメソッドの定義
  □ □ Scannerクラスを使い、ユーザーから整数を入力して変数userNumberに代入
  □ □ ユーザーに「1から100の間で好きな数字を入力してください: 」と表示
  □ □ Randomクラスを使用して乱数を生成し、変数randomNumberに代入
  □ □ ユーザーが入力した数と生成した乱数を表示
  □ □ 二つの数の合計を計算し、合計結果を表示

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

import java.util.Random;  // 乱数を生成するためのクラス
import java.util.Scanner; // ユーザーからの入力を受け取るためのクラス

public class Main {
    public static void main(String[] args) {
        // Scannerクラスを使用してユーザーからの入力を受け取る
        /*【穴埋め問題1】
        ここにScannerクラスを使用してユーザーから整数を入力し、変数userNumberに代入するコードを書いてください。
        */

        // Randomクラスを使用して乱数を生成
        /*【穴埋め問題2】
        ここにRandomクラスを使用して1から100の範囲で乱数を生成し、変数randomNumberに代入するコードを書いてください。
        */

        // 結果を出力
        System.out.println("あなたが選んだ数: " + userNumber);
        System.out.println("生成されたランダムな数: " + randomNumber);
        System.out.println("二つの数の合計: " + (userNumber + randomNumber));
    }
}

以上がこの問題の穴埋めコードです。

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。



解答例と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

import java.util.Random;  // 乱数を生成するためのクラス
import java.util.Scanner; // ユーザーからの入力を受け取るためのクラス

public class Main {
    public static void main(String[] args) {
        // Scannerクラスを使用してユーザーからの入力を受け取る
        Scanner scanner = new Scanner(System.in);
        System.out.print("1から100の間で好きな数字を入力してください: ");
        int userNumber = scanner.nextInt();  // ユーザーが入力した数を取得

        // Randomクラスを使用して乱数を生成
        Random random = new Random();
        int randomNumber = random.nextInt(100) + 1;  // 1から100の間で乱数を生成

        // 結果を出力
        System.out.println("あなたが選んだ数: " + userNumber);
        System.out.println("生成されたランダムな数: " + randomNumber);
        System.out.println("二つの数の合計: " + (userNumber + randomNumber));
    }
}

正解コードの解説

このコードではimport文を使って外部クラスをインポートし、ユーザー入力と乱数生成の機能を利用する方法を学びます。

コードを順に見ていきましょう。

import文

import java.util.Random;  // 乱数を生成するためのクラス
import java.util.Scanner; // ユーザーからの入力を受け取るためのクラス

最初にimport文を使ってjava.util.Randomjava.util.Scannerをインポートしています。

import文はJavaで他のパッケージに含まれるクラスを使いたい時に必要です。

Mainクラスとmainメソッド

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

MainクラスはJavaプログラムのエントリーポイントです。

すべてのJavaアプリケーションはクラスを持ち、メインメソッドであるmainから処理が始まります。

このmainメソッド内で実際にプログラムの処理が進みます。

Scannerクラスでユーザーからの入力を受け取る

        Scanner scanner = new Scanner(System.in);
        System.out.print("1から100の間で好きな数字を入力してください: ");
        int userNumber = scanner.nextInt();  // ユーザーが入力した数を取得

ここではScannerクラスを使ってユーザーから数値を入力してもらいます。

new Scanner(System.in)によってユーザーの入力を読み取るためのScannerオブジェクトが作成されます。

その後nextInt()メソッドを使い、ユーザーが入力した整数を取得して変数userNumberに格納します。

Randomクラスで乱数を生成

        Random random = new Random();
        int randomNumber = random.nextInt(100) + 1;  // 1から100の間で乱数を生成

ここではRandomクラスを使って1から100の範囲で乱数を生成します。

new Random()でRandomオブジェクトを作成し、nextInt(100) + 1で0から99までの整数に1を足すことで、1から100の範囲で乱数が生成されます。

生成された数値はrandomNumberに格納されます。

結果の出力

        System.out.println("あなたが選んだ数: " + userNumber);
        System.out.println("生成されたランダムな数: " + randomNumber);
        System.out.println("二つの数の合計: " + (userNumber + randomNumber));
    }
}

最後にユーザーが入力した数(userNumber)と生成された乱数(randomNumber)、そしてその合計値を表示します。

System.out.printlnはコンソール画面にメッセージを出力するためのメソッドです。

まとめ

このコードを通じてJavaのimport文を使って他のクラスをインポートし、Scannerでユーザー入力を受け取り、Randomで乱数を生成する方法を学びました。

これらの機能を組み合わせることで、様々なインタラクティブなプログラムが作れるようになります。

ぜひ試しながら理解を深めていきましょう!

<<前の問題 問題集Top 次の問題>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    JAVAテキスト&問題集へ戻る
    トップページへ戻る