// CalculationPractice -- 計算問題 import java.io.*; // 入出力関係のクラス public class CalculationPractice { static int noProblems = 10; // 出題数 (number of problems) デフォルト static int maxValue = 99; // 答えの最大値 デフォルト static int maxNo2 = 10; // 答えの最大値 デフォルト int correctAnswers = 0; // 正解の数を記憶 int wrongAnswers = 0; // 間違いの数を記憶 public static void main (String args[]) { try { // 引数の処理 ☆☆switch文を使っている switch (args.length) { // 引数の個数は配列の大きさでわかる case 3: // 引数が3つある時,ここからbreakまでを実行 maxNo2 = Integer.parseInt(args[2]); // 第2項の最大値 case 2: // 引数が2つか3つある時ここに到達 maxValue = Integer.parseInt(args[1]); // 答えの最大値 case 1: // 引数が1-3個の時ここに到達 noProblems = Integer.parseInt(args[0]); // 問題数 break; // 引数が1-3個の時はここでswitchを抜け,tryも抜ける case 0: // 引数がない場合 break; // 何もしないで抜ける default: // 引数が4つ以上ある時 throw new Exception();//引数の指定が変。例外を投げる } } catch (Exception e) { // 入力や整数への変換で例外が発生 System.err.println("使用法: java CalculationPractice 問題数 答え最大値 第2項最大値"); System.exit(1); // 使用法を表示して終了 } // 全体を制御するオブジェクトを作る CalculationPractice controller = new CalculationPractice(); controller.run(); // メソッドrun()実行 } void run() { System.out.print("---------- けいさんれんしゅう " + noProblems + "だい ----------\n"); // プログラム生成(program generator)オブジェクトの生成 ProblemGenerator pg = new ProblemGenerator(noProblems, maxValue, maxNo2); AnswerReader ar = new AnswerReader(); // 答えを読み込むオブジェクト for (int i=0; i