エンジニア成長日記 swaponQ

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

新・明解 Java 入門 演習 4-1, 4-2, 4-3 解答

Hello, Terminal!swaponQです!

今回から「第4章:プログラムの流れの繰り返し」に入ります。

第4章にはなんと…演習が27題用意されています!

まずは演習 4-1, 4-2, 4-3 に取り組んでいこうと思います。

  • 演習 4-1

読み込んだ整数値の符号を判定するプログラムを好きなだけ何度でも繰り返して入力・表示できるようにしたプログラムを作成せよ。

ex04_1.java

import java.util.Scanner;

class ex04_1 {
	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);
		int retry;
		do {
			System.out.print("整数値:");
			int n = stdIn.nextInt();
			if (n > 0) {
				System.out.println("その値は正です。");
			} else if (n < 0) {
				System.out.println("その値は負です。");
			} else {
				System.out.println("その値は0です。");
			}
			System.out.println();
			System.out.print("もう一度? 1…YES 2…NO:");
			retry = stdIn.nextInt();
		} while (retry == 1);
		System.out.println("終了します。"); //retry == 0
	}
}

実行結果

整数値:5
その値は正です。

もう一度? 1…YES 2…NO:1
整数値:-3
その値は負です。

もう一度? 1…YES 2…NO:0
終了します。
  • 演習 4-2

2桁の整数値(10~99)を当てさせる《数当てゲーム》を作成せよ。

ex04_2.java

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

class ex04_2 {
	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);
		Random rand = new Random();
		int no = rand.nextInt(90) + 10;
		int x;
    System.out.println("数当てゲーム開始!!\n10~99の値を入力してください。");
		do {
			System.out.print("いくつかな?:");
			x = stdIn.nextInt();
			if (x > no) {
				System.out.println("もっと小さい数だよ");
			} else if (x < no) {
				System.out.println("もっと大きい数だよ");
			}
		} while (x != no);
		System.out.println("正解です。");
	}
}

実行結果

数当てゲーム開始!!
10~99の値を入力してください。
いくつかな?:50
もっと小さい数だよ
いくつかな?:25
もっと小さい数だよ
いくつかな?:10
もっと大きい数だよ
いくつかな?:15
もっと大きい数だよ
いくつかな?:20
正解です。
  • 演習 4-3

二つの整数値を読み込んで、小さい方の数以上で大きい方の数以下の全整数を小さい方から順に表示するプログラムを作成せよ。

ex04_3.java

import java.util.Scanner;

class ex04_3 {
	public static void main(String[] args) {
		Scanner stdIn = new Scanner(System.in);
		System.out.print("整数A:");
		int a = stdIn.nextInt();
		System.out.print("整数B:");
		int b = stdIn.nextInt();
		int max = a;
		int min = b;
		if (max < min) {
			int n = max;
			max = min;
			min = n;
		}
		int i = min;
		do {
			System.out.print(i + " ");
			i = i + 1;
		} while (max != i);
		System.out.println(i);
	}
}

実行結果

整数A:37
整数B:28
28 29 30 31 32 33 34 35 36 37


今回は以上です。お疲れ様でした!
次回は演習 4-4, 4-5, 4-6, 4-7 です。

Goodbye, Terminal… swaponQでした!