Использование оператора if-then-else - PullRequest
0 голосов
/ 10 сентября 2018

Метод: «запустить»

  • Создать бесконечный цикл
  • Если MerkleManager.sMerkleRoot не равен нулю, то ...
  • Если вышеуказанный корень merkle равен начальному введенному пользователем корню merkle. Затем распечатайте «Вы выиграли:», затем корень merkle и выйдите из приложения.
  • В противном случае, если они не равны, сообщите пользователю, что он проиграл, - и выйдите из приложения.

Мой код:

public void run() {

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

    } else {

    } 
    System.exit(0);
}

Как мне установить MerkleManager.sMerkleRoot не нуль и использовать оператор if-then-else?

Ответы [ 3 ]

0 голосов
/ 10 сентября 2018

Ваш код никогда не покинет цикл 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
}
0 голосов
/ 10 сентября 2018

Во-первых, вы говорите, что хотите, чтобы он выходил из JVM независимо от того, выполнено ли условие или нет, что сделает цикл while бесполезным, поскольку первая итерация гарантирует завершение для любого случая (и того способа, которым вы его используете в настоящее время). застрянет в цикле и никогда не выполнит следующую строку), поэтому вы можете полностью удалить его.

Во-вторых, вам необходимо заключить круглые скобки в логическое выражение в условии if в java.

То, что вы хотите сделать для своего метода, может выглядеть немного больше так:

public void run() {
    if (MerkleManager.sMerkleRoot != null && MerkleManager.sMerkleRoot == inputRoot) {
        System.out.println("You won");
    }
    else {
        System.out.println("You lose");
    }
    System.exit(0);
}
0 голосов
/ 10 сентября 2018

При проверке вы присваиваете значение MerkleManager.sMerkleRoot с операндом присваивания "=".

Вместо этого вы должны проверять операнд "==" или "! =" Для сравнения ссылок на объекты.

public void run() {

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

    } else {

    } 
    System.exit(0);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...