Напишите программу, которая принимает два числа и оператор типа (+, -, *, /) в качестве аргументов командной строки и выполняет операцию, указанную оператором [duplicate]

1

Напишите программу, которая принимает два числа и оператор типа (+, -, *,/) в качестве аргументов командной строки и выполняет соответствующую операцию, указанную оператором. Если пользователь вводит любой другой символ, будет отображено соответствующее сообщение. Вывод программы должен отображаться пользователю.

Мой код - это

public class Practical4
{

    public static void main(String[] args)
    {
        if(args.length==0)
        {
        System.out.println("No arguments are passed");
        }
        else
        {

        int a=Integer.parseInt(args[0]);
        String p=args[1];
        int b=Integer.parseInt(args[2]);

        switch(p)
        {
            case "+":
                System.out.println("Addition of "+a+" and "+b+" : "+(a+b));
                break;

            case "-":
                System.out.println("Subtraction of "+a+" and "+b+" : "+(a-b));
                break;

            case "*":
                System.out.println("Multiplication of "+a+" and "+b+" : "+(a*b));
                break;

            case "/":
                System.out.println("Division of "+a+" and "+b+" : "+(a/b));
                break;

            case "%":
                System.out.println("Modulo of "+a+" and "+b+" : "+(a%b));
                break;


            default:
                System.out.println("Please Enter '+', '-', '*', '/' & '%' operator only.");
        }
        }

    }

}

и я получаю эту ошибку

java:17: incompatible types
found   : java.lang.String
required: int
        switch(p)
               ^
1 error

Пожалуйста, дайте решение. благодаря

  • 1
    Какую версию JDK вы используете ?? Это разрешено только после Java7
  • 0
    stackoverflow.com/questions/338206/...
Теги:

2 ответа

1
Лучший ответ

попробуйте это: потому что string java 7 onward поддерживается в случае switch.

перед java 7 вы должны сделать следующее:

public class Practical4
{

    public static void main(String[] args)
    {
        if(args.length==0)
        {
        System.out.println("No arguments are passed");
        }
        else
        {

        int a=Integer.parseInt(args[0]);
        char p=args[1].charAt(0);
        int b=Integer.parseInt(args[2]);

        switch(p)
        {
            case '+':
                System.out.println("Addition of "+a+" and "+b+" : "+(a+b));
                break;

            case '-':
                System.out.println("Subtraction of "+a+" and "+b+" : "+(a-b));
                break;

            case '*':
                System.out.println("Multiplication of "+a+" and "+b+" : "+(a*b));
                break;

            case '/':
                System.out.println("Division of "+a+" and "+b+" : "+(a/b));
                break;

            case '%':
                System.out.println("Modulo of "+a+" and "+b+" : "+(a%b));
                break;


            default:
                System.out.println("Please Enter '+', '-', '*', '/' & '%' operator only.");
        }
        }

    }

}
0

В старых версиях java вы не можете перебирать строку в строке. Это разрешено только с java 7: qaru.site/questions/925874/... Либо обновите свою версию Java, либо конвертируйте p в char

Ещё вопросы

Сообщество Overcoder
Наверх
Меню