エンジニア成長日記 swaponQ

コンピュータサイエンス専攻の一般人のブログです。

新・明解 Java 入門 演習 2-7, 2-8, 2-9, 2-10 解答

Hello, Terminal!swaponQです!

前回に引き続き、今回は演習 2-7, 2-8, 2-9, 2-10 に取り組んでいこうと思います。

  • 演習 2-7

以下に示すプログラムを作成せよ。
・1桁の正の整数値をランダムに生成して表示
・1桁の負の整数値をランダムに生成して表示
・2桁の正の整数値をランダムに生成して表示

ex02_7.java

import java.util.Random;

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

    int randnum1 = rand.nextInt(9); //0,1,2,3,4,5,6,7,8のどれか
    randnum1 = randnum1 + 1;  //1,2,3,4,5,6,7,8,9のどれか
    System.out.println("1桁の正の整数値:" + randnum1);

    int randnum2 = rand.nextInt(9); //0,1,2,3,4,5,6,7,8のどれか
    randnum2 = -(randnum2 + 1);  //-1,-2,-3,-4,-5,-6,-7,-8,-9のどれか
    System.out.println("1桁の負の整数値:" + randnum2);

    int randnum3 = rand.nextInt(9); //0,1,2,3,4,5,6,7,8のどれか
    randnum3 = (randnum3 + 1) * 10;  //10,20,30,40,50,60,70,80,90のどれか
    int randnum4 = rand.nextInt(10);  //0,1,2,3,4,5,6,7,8,9のどれか
    System.out.println("2桁の正の整数値:" + (randnum3 + randnum4));
  }
}

実行結果

1桁の正の整数値:6
1桁の負の整数値:-1
2桁の正の整数値:79
  • 演習 2-8

キーボードから読み込んだ整数値プラスマイナス5の範囲の整数値をランダムに生成して表示するプログラムを作成せよ。

ex02_8.java

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

class ex02_8 {
  public static void main(String[] args) {
    Scanner stdIn = new Scanner(System.in);
    Random rand = new Random();
    System.out.print("整数値:");
    int n = stdIn.nextInt();
    int randnum = rand.nextInt(11); //0,1,2,3,4,5,6,7,8,9,10のどれか
    randnum = randnum - 5;  //-5,-4,-3,-2,-1,0,1,2,3,4,5のどれか
    System.out.println("その値の±5の乱数を生成しました。それは" + (n + randnum) + "です。");
  }
}

実行結果

整数値:100
その値の±5の乱数を生成しました。それは99です。
  • 演習 2-9

以下に示すプログラムを作成せよ。(実数値の乱数の生成にはnextDouble()を使うこと)
・0.0以上1.0未満の実数値をランダムに生成して表示
・0.0以上10.0未満の実数値をランダムに生成して表示
・-1.0以上1.0未満の実数値をランダムに生成して表示

ex02_9.java

import java.util.Random;

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

    double randnum1 = rand.nextDouble();
    System.out.println("0.0以上1.0未満の実数値:" + randnum1);

    int randnum2 = rand.nextInt(10); //0,1,2,3,4,5,6,7,8,9のどれか
    double randnum3 = rand.nextDouble();
    System.out.println("0.0以上10.0未満の実数値:" + (randnum2 + randnum3));

    double randnum4 = rand.nextDouble();
    int randnum5 = rand.nextInt(2); //0,1のどれか
    System.out.println("-1.0以上1.0未満の実数値:" + (randnum4 - randnum5));
  }
}

実行結果

0.0以上1.0未満の実数値:0.11685385298679984
0.0以上10.0未満の実数値:9.726825711671045
-1.0以上1.0未満の実数値:-0.5019914805602478
  • 演習 2-10

名前の姓と名を個別にキーボードから読み込んで。挨拶を行うプログラムを作成せよ。

ex02_10.java

import java.util.Scanner;

class ex02_10 {
  public static void main(String[] args) {
    Scanner stdIn = new Scanner(System.in);
    System.out.print("姓:");
    String last = stdIn.next();
    System.out.print("名:");
    String first = stdIn.next();
    System.out.println("こんにちは" + last + first + "さん。");
  }
}

実行結果

姓:swapon
名:Q
こんにちはswaponQさん。


以上で「第2章:変数を使おう」の演習は全て終了です。
演習問題の指示を少し考察してからコーディングを始めるような問題が登場してきましたね。
お疲れ様でした!
次回は「第3章:プログラムの流れの分岐」です。

Goodbye, Terminal… swaponQでした!