Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法阻止在Java中执行代码_Java_Syntax - Fatal编程技术网

无法阻止在Java中执行代码

无法阻止在Java中执行代码,java,syntax,Java,Syntax,我已经编写了一个程序,在这个程序中,你可以写入控制台,程序会告诉你这个表达式在算术上是否正确。假设输入为12+1,则输出为真 下面是我在互联网上找到的一段代码,它将额外计算12+1的解。然而,我无法控制它的执行。我只希望它在输出为真时执行。我该怎么做?以下是我尝试过的,但代码仍在执行: 让我澄清一下;虽然bool为false,但执行if 我希望你能告诉我怎么修?因为我需要这个来编写另一个更长的代码 import javax.script.ScriptEngineManager; import j

我已经编写了一个程序,在这个程序中,你可以写入控制台,程序会告诉你这个表达式在算术上是否正确。假设输入为12+1,则输出为真

下面是我在互联网上找到的一段代码,它将额外计算12+1的解。然而,我无法控制它的执行。我只希望它在输出为真时执行。我该怎么做?以下是我尝试过的,但代码仍在执行:

让我澄清一下;虽然bool为false,但执行if

我希望你能告诉我怎么修?因为我需要这个来编写另一个更长的代码

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));
}