检查 java 程序中的参数数量

Check the number of arguments in a java program

我有一个 java 程序,它有两个整数作为输入并且必须执行所有四个数学运算。

与此同时,我通过终端 运行 我的 Java 程序,所以这两个整数作为参数传递。但是,每当我尝试检查传递的参数的有效性时,我都会收到一条消息:

(例如,如果我 运行:Java 示例 --> 没有任何参数,我会收到以下消息)

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at Example.main(Example.java:38)

我的代码如下:

public class Example {
    public void Sum(int a, int b) {
        int sum = a + b;
        System.out.println("The sum:" + sum);
    }

    public void Sub(int a, int b) {
        int sub = a - b;
        System.out.println("The subtraction is:" + sub);
    }

    public void Mul(int a, int b) {
        int mul = a * b;
        System.out.println("The multiplication is:" + mul);
    }

    public void Div(int a, int b) {
        try {
            int div = a / b;
            System.out.println("The division is:" + div);
        } catch (ArithmeticException e) {
            System.out.println("You can't divide a number by 0");
        }
    }

    public static void main(String[] args) {
        Example c = new Example();
        int count = args.length;
        int x = Integer.parseInt(args[0]);
        int y = Integer.parseInt(args[1]);
        int z = Integer.parseInt(args[1]);

        if (count == 0 || count > 2 || count == 1) {
            System.out.println("Not valid number of arguments try again. You entered " + count + " arguments");
        } else {
            c.Sum(x, y);
            c.Sub(x, y);
            c.Mul(x, y);
            c.Div(x, y);
            System.out.println("Arguments:" + count);
            return;
        }
    }
}

我在终端上写的是:例如Java 示例 2 3

在尝试访问 args[0]args[1] 之前,您需要确保 args[] 的大小等于 2。更改main如下:

public static void main(String[] args) {
    Example c = new Example();
    int count = args.length;
    if (count == 2) {
        int x = Integer.parseInt(args[0]);
        int y = Integer.parseInt(args[1]);

        c.Sum(x, y);
        c.Sub(x, y);
        c.Mul(x, y);
        c.Div(x, y);
        System.out.println("Arguments:" + count);
        return;
    } else {
        System.out.println("Not valid number of arguments try again. You entered " + count + " arguments");
    }
}

附带说明,您应该遵循 Java naming conventions 例如函数的名称应该是 sumsubmuldiv 而不是 SumSubMul Div.