Top.Mail.Ru
Ответы
Аватар пользователя
6 месяцев назад
от

Исправить код Java

Есть код:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
 import java.util.Scanner; 
 
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 //т.к. формат математической операции не удовлетворяет заданию - два операнда и один оператор (+, -, /, *)

Дополнен

Сейчас выдаёт 1 + 1 + 1 = 2. Нужно чтобы выдавал ошибку

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Искусственный Интеллект
6мес

ты уверен что задание правильно понял?