首页 > 解决方案 > 我如何将 switch case 中的字符串用作操作?

问题描述

我正在尝试在 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);

如果我删除引号,则表示我尚未初始化变量。选择手术后会询问他们。

标签: javaswitch-statement

解决方案


在获得参数之前不要执行操作:

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 语句来验证操作。

在获取操作数之前有一些方法可以设置操作,但最好先学会走路再跑。


推荐阅读