Java 动态条件语句
我想在java中创建动态条件语句Java 动态条件语句,java,conditional-statements,Java,Conditional Statements,我想在java中创建动态条件语句 下面是我在文件中的表达式,有数百个表达式,它们不断变化 0001|((condition1 == 100) && ((condition2 == 1) || (condition2 == 2) || (condition2 == 3)) && (condition3 > 74)) 0002|((condition1 == 100) && ((condition2 == 1) || (condition2 ==
下面是我在文件中的表达式,有数百个表达式,它们不断变化
0001|((condition1 == 100) && ((condition2 == 1) || (condition2 == 2) || (condition2 == 3)) && (condition3 > 74))
0002|((condition1 == 100) && ((condition2 == 1) || (condition2 == 2) || (condition2 == 3)) && (condition3 > 59) && ((condition4 == 3) || (condition5 > 30)))
这些表达式在我的课堂上是硬编码的
if(condition1==100 && ((condition2 == 1) || (condition2 == 2) || (condition2 == 3))){
if(condition3>74){
return "0001"
}
if(condition3>59 && ((condition4 == 3) || (condition5 > 30))){
return "0002"
}
}
我想创建动态条件语句,比如
首先,我检查所有条件为1==100的表达式然后对于((条件2==1)| |(条件2==2)| |(条件2==3))
然后根据最终条件返回值 这有点像先是DFS,然后是BFS
有人能告诉我如何在java中先检查深度,然后再检查Bredth吗?你的情况是:你想定义很多条件并不断地改变它。您需要有一个动态更改表达式和定义新条件的解决方案 对于动态情况,如您的案例,有两种解决方案:
规则引擎
。这有很大的好处,您可以从中查看更多信息
您可以从中看到它的开源实现Dynamic Language
或Script Language
和Script
api李>
在第二种解决方案中,您有几个选择。我写了一些如下:
bsh.source (script);
Sample condition checked and is true.
:一种完整而精彩的脚本语言。看Groovy
:Spring表达式语言
调用简单表达式的解决方案。看Spring
:一种简单但精彩的脚本语言BeanShell
JRuby
,您可以通过在web上进行简单搜索来查看它。
您可以从中阅读java中Script
api的更多信息
编辑:
对于示例,您可以使用BeanShell脚本语言
,如下所示:
首先创建一个名为test.bsh
的文件,其中包含以下内容:
if(variable_1 == 100 )
{
System.out.println("Sample condition checked and is true.");
}
else
{
System.out.println("Sample condition checked and is false.");
}
来自java的第二组变量_1
:
import bsh.*;
Interpreter bsh = new Interpreter ();
bsh.set ("variable_1", 100);
在最终调用脚本中,如下所示:
bsh.source (script);
Sample condition checked and is true.
结果如下:
bsh.source (script);
Sample condition checked and is true.
通过这种方法,您可以更改
test.bsh
内容,而无需重新编译或重新启动。请稍显清楚。看起来您想直接从某个编程竞赛中获得问题的答案。您需要将输入变量放入单个结构中,例如数组或dict,然后使用该数据结构以数据而不是代码表示条件。