Проверьте количество аргументов в программе java - PullRequest
1 голос
/ 14 апреля 2020

У меня есть программа 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

1 Ответ

2 голосов
/ 14 апреля 2020

Необходимо убедиться, что размер args[] равен 2, прежде чем пытаться получить доступ к args[0] и args[1]. Измените 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 соглашениям об именах , например, имена функций должны быть sum, sub , mul, div вместо Sum, Sub, Mul, Div.

...