新・明解 Java 入門 演習 4-4, 4-5, 4-6, 4-7 解答
Hello, Terminal!swaponQです!
前回に引き続き、今回は演習 4-4, 4-5, 4-6, 4-7 に取り組んでいこうと思います。
- 演習 4-4
List4-4のwhile文終了時にxの値が-1になることを確認するプログラムを作成せよ。
ex04_4.java
import java.util.Scanner;
class ex04_4 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("カウントダウンします。");
int x;
do {
System.out.print("正の整数値:");
x = stdIn.nextInt();
} while (x <= 0);
while (x >= 0) {
System.out.println(x);
x--;
}
System.out.println("xの値:" + x);
}
}実行結果
カウントダウンします。 正の整数値:5 5 4 3 2 1 0 xの値:-1
- 演習 4-5
List4-5のx--が--xとなっていたら、そのような出力が得られるかを検討せよ。プログラムを作成して実行結果を確認すること。
ex04_5.java
import java.util.Scanner;
class ex04_5 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("カウントダウンします。");
int x;
do {
System.out.print("正の整数値:");
x = stdIn.nextInt();
} while (x <= 0);
while (x >= 0) {
System.out.println(--x);
}
}
}実行結果
カウントダウンします。 正の整数値:5 4 3 2 1 0 -1
前置減分演算子を使用しているので、各要素をList4-5の実行例と比較すると-1となっていることが分かりますね。
- 演習 4-6
読み込んだ値が1未満であれば改行文字を出力しないようにList4-7およびList4-8を書きかえたプログラムをそれぞれ作成せよ。
ex04_6_1.java
import java.util.Scanner;
class ex04_6_1 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("何個*を表示しますか:");
int n = stdIn.nextInt();
int i = 0;
while (i < n) {
System.out.print('*');
i++;
}
if (n >= 1) {
System.out.println();
}
}
}実行結果
何個*を表示しますか:12 ************
ex04_6_2.java
import java.util.Scanner;
class ex04_6_2 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.print("何個*を表示しますか:");
int n = stdIn.nextInt();
int i = 1;
while (i <= n) {
System.out.print('*');
i++;
}
if (n >= 1) {
System.out.println();
}
}
}実行結果
何個*を表示しますか:12 ************
- 演習 4-7
読み込んだ値の個数だけ記号文字を表示するプログラムを作成せよ。表示は*と+を交互に行うこと。
ex04_7.java
import java.util.Scanner;
class ex04_7 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
int n;
do {
System.out.print("何個表示しますか:");
n = stdIn.nextInt();
} while (n < 1);
int x = 0;
while (x < n) {
System.out.print(x % 2 == 0 ? "*" : "+");
x++;
}
System.out.print("\n");
}
}実行結果
何個表示しますか:15 *+*+*+*+*+*+*+*
今回は以上です。お疲れ様でした!
次回は演習 4-8, 4-9 です。
Goodbye, Terminal… swaponQでした!