我的代码如下所示:
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
int x = 10;
engine.eval("x =" + x);
System.out.println((Boolean) engine.eval("x < 5"));
System.out.println((Boolean) engine.eval("2 < x < 5"));
第一个 SOP 按预期打印 false,但第二个 SOP 打印 true。当我将变量与两个值进行比较时,它不会给出正确的结果。即使一半的条件为真,它也给出 true。有什么解决方法吗?请建议。谢谢。
最佳答案
2 < x < 5
不做你认为它做的事。其评价如下:
2 < x < 5
(2 < x) < 5
(2 < 10) < 5
true < 5
1 < 5
true
尝试(2 < x) && (x < 5)
相反。
关于java - 评估字符串时的错误答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10936961/