小编use*_*399的帖子

在 Java case 语句中使用变量

我正在为计算器制作表达式解析器。表达式将包含一个变量,例如,用户可以输入“x + 2”或“y^2”。我有一个 switch 语句,switch 语句中的一种情况在检测到变量时执行某个操作:

case variableSymbol:
                    if (expression.length() == 1) 
                    {
                        rangeResult = x1;
                        break outer;
                    }
                    varFlag = true;
                    varPos = expresPos;
                    break;
Run Code Online (Sandbox Code Playgroud)

最初,我在上面的例子中硬编码了一个值“x”,但我想让用户选择他们使用哪个变量,所以向解析函数添加了一个 char 参数,并将其命名为 variableSymbol。这些是函数的参数:

public static ArrayList<Double> parseRange(String expression, char variableSymbol, double x1, double x2, double step)
Run Code Online (Sandbox Code Playgroud)

但是 Java 不允许在 switch 语句中使用变量作为 case。有没有办法解决?避免重写switch语句的解决方案是最好的,因为它长达数百行。谢谢您的帮助。

java compile-time-constant switch-statement

3
推荐指数
1
解决办法
8114
查看次数