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

Код на Java

Делаю калькулятор, Есть код:

import java.util.Scanner;

public class Calculator {
static Scanner scanner = new Scanner( System.in );

public static void main(String[] args) {
int num1 = getInt();
int num2 = getInt();
char operation = getOperation();
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;
}
}

Он по очереди собирает данные, как сделать чтобы собирал данные 1 строчкой, то есть чтобы спрашивал арефметическое значение?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Оракул
6мес
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
 import java.util.Scanner; 
 
public class Calculator { 
    static Scanner scanner = new Scanner(System.in); 
 
    public static void main(String[] args) { 
        System.out.println("Введите выражение (например, 2 + 2):"); 
        String input = scanner.nextLine(); 
         
        try { 
            String[] parts = input.split(" "); 
            if (parts.length != 3) { 
                System.out.println("Ошибка формата. Используйте: число операция число"); 
                return; 
            } 
 
            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); 
        } catch (NumberFormatException e) { 
            System.out.println("Ошибка: Введите корректные числа"); 
        } catch (Exception e) { 
            System.out.println("Произошла ошибка: " + e.getMessage()); 
        } 
    } 
 
    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 '/': 
                if (num2 == 0) { 
                    throw new ArithmeticException("Деление на ноль невозможно"); 
                } 
                result = num1 / num2; 
                break; 
            default: 
                throw new IllegalArgumentException("Неподдерживаемая операция: " + operation); 
        } 
        return result; 
    } 
} 
 
Аватар пользователя
Искусственный Интеллект
6мес

твоя программа совершено не понимает порядок выполнения математических операций...