Java If-then-else语句使用

Java If-then-else语句使用,java,if-statement,Java,If Statement,方法:“运行” 创造无限循环 如果MerkleManager.sMerkleRoot不是null,则。。。 如果上面的merkle根等于初始用户输入的merkle根。然后打印“You win:”,然后打印merkle根并退出应用程序。 否则,如果它们不相等,则告诉用户他输了,然后退出应用程序。 我的代码: public void run() { while (true) { } if MerkleManager.sMerkleRoot = null; {

方法:“运行”

创造无限循环 如果MerkleManager.sMerkleRoot不是null,则。。。 如果上面的merkle根等于初始用户输入的merkle根。然后打印“You win:”,然后打印merkle根并退出应用程序。 否则,如果它们不相等,则告诉用户他输了,然后退出应用程序。 我的代码:

public void run() {

    while (true) {
    }
    if MerkleManager.sMerkleRoot = null;
    {

    } else {

    } 
    System.exit(0);
}

如何将MerkleManager.sMerkleRoot设置为非null并使用if-then-else语句?

在您的检查中,您正在使用=赋值操作数赋值MerkleManager.sMerkleRoot的值

相反,您应该检查==或!=操作数以比较对象引用

public void run() {

    while (true) {
    }
    if MerkleManager.sMerkleRoot != null
    {

    } else {

    } 
    System.exit(0);
}

您的代码永远不会以编写的方式离开while循环

换成这个,

public void run() {

    while (true) {
      if MerkleManager.sMerkleRoot != null{
         // do stuff
      }else {
        // do something else
      } 
    System.exit(0); // if you leave this statement, your code will exit on the first exec
}

首先,您要说的是,无论是否满足条件,您都希望它退出JVM,这将使while循环无效,因为第一次迭代将保证这两种情况都会终止,并且您当前的方式将使您陷入循环中,并且永远不会执行以下行,因此您可以删除该完整的while循环伊利

其次,在java中的if子句中,需要在布尔语句周围加括号

您想要为您的方法执行的操作可能看起来更像这样

public void run() {
    if (MerkleManager.sMerkleRoot != null && MerkleManager.sMerkleRoot == inputRoot) {
        System.out.println("You won");
    }
    else {
        System.out.println("You lose");
    }
    System.exit(0);
}