1. ホーム
  2. java

[解決済み] Javaで、引数が渡されない場合、変数number=Integer.parseInt(args[0])に値を代入するにはどうしたらいいですか?

2022-01-26 18:27:25

質問

コマンドラインの引数を受け取ってint型に変換し、その数から無限大までの整数をコンソールに表示する簡単なプログラムを書きました。

引数を渡さなかった場合は、例外メッセージが表示されます。

public class Infinity
{
    public static void main(String args[])
    {

        try
        {
            n=Integer.parseInt(args[0]);

            while(true)
            {
                System.out.println(n);
                n++;
            }
        }

        catch(Exception ex)
        {
            System.out.println("A number was not entered.");
        }
    }
}

引数を渡さなければ、プログラム自身が'n'に値を割り当てる方法はないのでしょうか?こんな感じで。

            n=Integer.parseInt(args[0]);
            if(args[0]==NULL)
            {
                n=0;
            }

解決方法は?

の値を割り当てることができます。 n として 0 または他の値をデフォルトで使用し if(args.length > 0) { で、引数が与えられているかどうかをチェックします。以下は、コメント付きの完全な例です。

public class Infinity {
    public static void main(String args[]) {

        /*
        Start by assigning your default value to n, here it is 0
        If valid argument is not given, your program runs 
        starting from this value
        */
        int n = 0;

        // If any arguments given, we try to parse it
        if(args.length > 0) {

            try {
                n = Integer.parseInt(args[0]);
            } catch (NumberFormatException e) {
                System.err.println("Argument" + args[0] + " must be an integer.");

                // Program ends
                System.exit(1);
            }

        }

        // All good, n is either default (0) or user entered value
        while(true) {
            System.out.println(n);
            n++;
        }
    }
}

このプログラムは、javaにあまり慣れていない方でも実行できます。

  1. に保存します。 Infinity.java
  2. cmdやターミナルで記述してコンパイルする。 javac Infinity.java
  3. で実行する。 java Infinity または java Infinity 1000 (またはその他の値)

乾杯