无法阻止在Java中执行代码
我已经编写了一个程序,在这个程序中,你可以写入控制台,程序会告诉你这个表达式在算术上是否正确。假设输入为12+1,则输出为真 下面是我在互联网上找到的一段代码,它将额外计算12+1的解。然而,我无法控制它的执行。我只希望它在输出为真时执行。我该怎么做?以下是我尝试过的,但代码仍在执行: 让我澄清一下;虽然bool为false,但执行if 我希望你能告诉我怎么修?因为我需要这个来编写另一个更长的代码无法阻止在Java中执行代码,java,syntax,Java,Syntax,我已经编写了一个程序,在这个程序中,你可以写入控制台,程序会告诉你这个表达式在算术上是否正确。假设输入为12+1,则输出为真 下面是我在互联网上找到的一段代码,它将额外计算12+1的解。然而,我无法控制它的执行。我只希望它在输出为真时执行。我该怎么做?以下是我尝试过的,但代码仍在执行: 让我澄清一下;虽然bool为false,但执行if 我希望你能告诉我怎么修?因为我需要这个来编写另一个更长的代码 import javax.script.ScriptEngineManager; import j
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
public class Supporter{
public static void main(String[] args) throws ScriptException{
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
String str = "2+2";
int counter=0;
boolean bool=false;
if(bool=true){
System.out.println(engine.eval(str));
}
}
}
您有一个小错误:您必须使用==而不是=
您有一个小错误:您必须使用==而不是=
使用“==”测试是否相等。“=”吉姆。噢,哇,这很有帮助,谢谢你:虽然我很惊讶它没有显示为错误..添加到@ajimenez回答:如果你的变量已经是一个布尔值,你可以直接使用它,不需要再比较它,因为它只计算为另一个布尔值。使用“==”测试是否相等。“=”吉姆。噢,哇,这很有帮助,谢谢你:虽然我很惊讶它没有显示为错误..添加到@ajimenez回答:如果你的变量已经是布尔值,你可以直接使用它,不需要再比较它,因为这只会计算为另一个布尔值。谢谢你的帮助:也许你还可以告诉我为什么我没有使用双等号,所以它没有显示为错误?在许多其他情况下,它会显示出来,例如当我们比较整数时。是的,甚至更好:ifboolIt没有显示错误,因为它不是错误:=运算符返回指定的值,所以您可以这样做:int var1;int var2=va1=10;或int var2=var 1=10;所以var1和var2的值为10;对于布尔型,情况相同:ifbool=true等于do:boole=true;伊夫布尔。。。我希望我解释得很好。谢谢你的帮助:也许你也可以告诉我为什么我没有使用双等号,没有显示为错误?在许多其他情况下,它会显示出来,例如当我们比较整数时。是的,甚至更好:ifboolIt没有显示错误,因为它不是错误:=运算符返回指定的值,所以您可以这样做:int var1;int var2=va1=10;或int var2=var 1=10;所以var1和var2的值为10;对于布尔型,情况相同:ifbool=true等于do:boole=true;伊夫布尔。。。我希望我解释得很好。
if(bool == true){
System.out.println(engine.eval(str));
}