0
最近,我做了singularsys JEP一些測試,我有以下片斷,奇怪的行爲
Jep jep = new Jep();
jep.parse("x*2");
for (int i = 1; i <= 5; i++) {
if (i <= 2) {
jep.addVariable("x", i);
}
try {
System.out.println(jep.evaluate());
} catch (Exception ex) {
System.out.println("N/A");
}
}
我期望是,
2.0 4.0 N/A N/A N/A
而真正的結果是,
2.0 4.0 4.0 4.0 4.0
然後我意識到jep保留上次使用的變量值,所以我更新我的代碼以調用jep.getVariableTable()。clearVal的UE(),
Jep jep = new Jep();
jep.parse("x*2");
for (int i = 1; i <= 5; i++) {
jep.getVariableTable().clearValues();
if (i <= 2) {
jep.addVariable("x", i);
}
try {
System.out.println(jep.evaluate());
} catch (Exception ex) {
System.out.println("N/A");
}
}
我可以看到,在variableTable變量值是空時I> 2,但輸出仍然是,
2.0 4.0 4.0 4.0 4.0
我可以具有JEP或variableTable一個很大的誤解,有誰能請幫忙給一些解釋嗎?謝謝。
將'crearValues()'更改爲'clear()'。 – saka1029
@ saka1029也不起作用 – morven