在 Java case 语句中使用变量

2023-12-03

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

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

最初,我在上述情况下硬编码了一个值“x”,但我想让用户选择使用哪个变量,因此在解析函数中添加了一个 char 参数,并将其命名为variableSymbol。 这是该函数的参数:

public static ArrayList<Double> parseRange(String expression, char variableSymbol, double x1, double x2, double step)

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


不,这是不可能的,对于一个人来说没有意义switch案件;你想要的可以通过以下方式实现if-else。原因是因为 switch 通常是通过查找表来实现的,比if-else;但为了实现这一点,需要在编译时设置分支。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java case 语句中使用变量 的相关文章

随机推荐