mainメソッドの理解をしっかり定着させるには、手を動かして「動かす・間違える・直す」のがいちばん。
ここでは、難易度別(初級 → 中級 → 発展) に整理した 全10問の練習問題セット を用意しました。
すべて コンパイルして動作確認できる完全コード例+解答+解説 付きです。
初級(基本を定着させる)
問題1:Hello, Java!
コマンドライン引数がなければ "Hello, Java!" を表示し、
あれば "Hello, <名前>!" を表示してください。
解答例
public class HelloJava {
public static void main(String[] args) {
if (args.length > 0) {
System.out.println("Hello, " + args[0] + "!");
} else {
System.out.println("Hello, Java!");
}
}
}
Javaポイント: args[0] は1つ目の引数。args.length で数を確認。
問題2:引数の数を数えよう
渡された引数がいくつあるかを表示してください。
解答例
public class CountArgs {
public static void main(String[] args) {
System.out.println("引数の数: " + args.length);
}
}
Java例:java CountArgs A B C → 出力:引数の数: 3
問題3:足し算
引数で渡された2つの数を足して結果を表示してください。
解答例
public class AddArgs {
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("使い方: java AddArgs <数1> <数2>");
return;
}
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
System.out.println("合計: " + (a + b));
}
}
Java中級(条件分岐・繰り返しの練習)
問題4:偶数・奇数判定
引数で受け取った整数が偶数か奇数かを判定してください。
解答例
public class EvenOdd {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("整数を1つ入力してください。");
return;
}
int num = Integer.parseInt(args[0]);
if (num % 2 == 0) {
System.out.println(num + " は偶数です。");
} else {
System.out.println(num + " は奇数です。");
}
}
}
Java問題5:最大値を求めよう
複数の数値を引数で受け取り、その中の最大値を表示してください。
解答例
public class MaxValue {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("少なくとも1つの整数を入力してください。");
return;
}
int max = Integer.parseInt(args[0]);
for (int i = 1; i < args.length; i++) {
int n = Integer.parseInt(args[i]);
if (n > max) max = n;
}
System.out.println("最大値: " + max);
}
}
Java問題6:逆順表示
引数で渡された文字列を逆順に表示してください。
解答例
public class Reverse {
public static void main(String[] args) {
for (int i = args.length - 1; i >= 0; i--) {
System.out.print(args[i]);
if (i > 0) System.out.print(" ");
}
System.out.println();
}
}
Java例:java Reverse A B C → 出力:C B A
問題7:九九の段
1〜9の整数を1つ受け取り、その段の九九を表示してください。
解答例
public class Kuku {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("1〜9の整数を入力してください。");
return;
}
int dan = Integer.parseInt(args[0]);
for (int i = 1; i <= 9; i++) {
System.out.println(dan + " × " + i + " = " + (dan * i));
}
}
}
Java発展(文字列操作・配列・条件分岐の応用)
問題8:単語検索
複数の単語を引数で受け取り、その中に "Java" が含まれているかを判定。
解答例
public class FindJava {
public static void main(String[] args) {
boolean found = false;
for (String s : args) {
if (s.equalsIgnoreCase("Java")) {
found = true;
break;
}
}
if (found) {
System.out.println("「Java」が含まれています!");
} else {
System.out.println("「Java」は見つかりませんでした。");
}
}
}
Java問題9:平均値を求めよう
複数の整数を受け取り、その平均値(小数あり)を表示してください。
解答例
public class Average {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("整数を入力してください。");
return;
}
int sum = 0;
for (String s : args) {
sum += Integer.parseInt(s);
}
double avg = (double) sum / args.length;
System.out.println("平均値: " + avg);
}
}
Java問題10:単語を大文字に変換
引数で渡された単語をすべて大文字に変換して表示してください。
解答例
public class Upper {
public static void main(String[] args) {
for (String s : args) {
System.out.print(s.toUpperCase() + " ");
}
System.out.println();
}
}
Java練習セットの活用方法
- 1つの
.javaファイルに1問ずつ書く(例:MaxValue.java)。 - コマンドでコンパイル
javac MaxValue.java - 実行(クラス名のみ指定)
java MaxValue 10 20 5 - 結果を確認し、
argsの内容をSystem.out.println(Arrays.toString(args));などで表示してみると理解が深まります。
どちらの形式がいいですか?
