Как я могу использовать строку в случае переключения в качестве действия? - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь кодировать калькулятор на Java, но в операторе switch он принимает операцию как строку, как я могу преобразовать ее в действие?

switch(op) {
    case 1: operation = "res= a + b";
    break;
    case 2: operation = "res = a - b";
    break;
    case 3: operation = "res = a * b";
    break;
    case 4: operation = "res = a / b";
    break;
}

System.out.println(operation);

Если я удаляю кавычкиговорит, что я не инициализировал переменные.Их спрашивают после выбора операции.

1 Ответ

0 голосов
/ 04 июня 2018

Не выполняйте операцию, пока у вас нет аргументов:

import static java.lang.Integer.*;
import java.util.*;

class t1 {
    static void calc(Scanner in) {

        System.out.print("Operation: ");
        int op = in.nextInt();
        System.out.print("a: ");
        int a = in.nextInt();
        System.out.print("b: ");
        int b = in.nextInt();

        int res = 0;

        switch(op) {
            case 1:
                res = a + b;
                break;
            case 2:
                res = a - b;
                break;
            case 3:
                res = a * b;
                break;
            case 4:
                res = a / b;
                break;
            default:
                System.out.println("Invalid operation");
                System.exit(-1);
        }

        System.out.println(res);
    }

    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        while (true) {
            calc(in);
        }
    }
}

Вы можете проверить операцию, прежде чем запрашивать операнды, с помощью дополнительного оператора switch.

Существуют способыустановить операцию до получения операндов, но лучше всего научиться ходить перед запуском.

...