public class Calculator { static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Введите выражение (например, 2 + 3):"); String input = scanner.nextLine();
// Разбиваем строку на части по пробелу String[] parts = input.split(" ");
// Преобразуем части в нужные типы int num1 = Integer.parseInt(parts[0]); char operation = parts[1].charAt(0); int num2 = Integer.parseInt(parts[2]);
int result = calc(num1, num2, operation); System.out.println("Результат операции: " + result); }
public static int getInt(){ System.out.println("Введите число:"); int num; if(scanner.hasNextInt()){ num = scanner.nextInt(); } else { System.out.println("Вы допустили ошибку при вводе числа. Попробуйте еще раз."); scanner.next();//рекурсия num = getInt(); } return num; }
public static char getOperation(){ System.out.println("Введите операцию:"); char operation; if(scanner.hasNext()){ operation = scanner.next().charAt(0); } else { System.out.println("Вы допустили ошибку при вводе операции. Попробуйте еще раз."); scanner.next();//рекурсия operation = getOperation(); } return operation; }
public static int calc(int num1, int num2, char operation){ int result; switch (operation){ case '+': result = num1+num2; break; case '-': result = num1-num2; break; case '*': result = num1*num2; break; case '/': result = num1/num2; break; default: System.out.println("Операция не распознана. Повторите ввод."); result = calc(num1, num2, getOperation());//рекурсия } return result; } }
Как сделать?
Input: 1 + 2 + 3
Output: throws Exception //т.к. формат математической операции не удовлетворяет заданию - два операнда и один оператор (+, -, /, *)
Дополнен 2 дня назад
Сейчас выдаёт 1 + 1 + 1 = 2. Нужно чтобы выдавал ошибку
Input:
1 + 2 + 3
Output:
throws Exception //т.к. формат математической операции не удовлетворяет заданию - два операнда и один оператор (+, -, /, *)