Как возвращаемое логическое значение работает в аргументе (Java)

поэтому приведенный ниже код:

  private void pickNext()
  {

        last = next;
        next = (int)(Math.random() * 9 + 1);
        System.out.print(""+last + next);
        while(last == next)
        {
        next = (int)(Math.random() * 9 + 1);
        }

  }
  public boolean guessHigh()
  {
     pickNext();
     return next > last;
  }
  public boolean guessLow()
  {
     pickNext();
     return next < last;
  }

в основном говорит, что два целых числа (уже созданные и следующие уже определены) next и last изменяются так, что last становится следующим, затем next генерируется случайным образом, так что это не предыдущее число. Затем Gueslow и Guess High возвращаются, если next>last или nextМой вопрос в том, что они возвращают? он возвращает истину или ложь? или как число? В другой части моего кода:

public void update(boolean arg) //аргумент имеет значение true, значит, игрок угадал правильно {

        if()
        {
           //random other code
        }
        else
        {
          //other code
        }

как бы мне написать оператор if, чтобы, если оно является истинным, и если оно является истинным, а если нет, то оно делало это? Помощь очень приветствуется.


person Henry Zhang    schedule 02.02.2015    source источник


Ответы (2)


На основании определения параметра arg; true, если игрок угадал правильно. А arg будет true или false,

if (arg) {
    // player guessed correctly.
} else {
    // player guessed incorrectly.
}

что то же самое, что

if (arg == true) {
    // player guessed correctly.
} else {
    // player guessed incorrectly.
}

Вы также можете изменить логику, например

if (!arg) {
    // player guessed incorrectly.
} else {
    // player guessed correctly.
}

or

if (arg == false) {
    // player guessed incorrectly.
} else {
    // player guessed correctly.
}
person Elliott Frisch    schedule 02.02.2015

Два метода возвращают логическое значение. В операторе if вы просто пишете имя метода как:

if ( guessHigh() ) {..}
else {..}

Или, если вы получите его как параметр:

public void update(boolean arg){
    if ( arg ) {..}
    else {..}
}

В этом случае я бы предложил назвать параметр более значимым именем, например. правильно угадал. Таким образом, вы можете написать оператор if как

public void update(boolean hasCorrectlyGuessed){
        if ( hasCorrectlyGuessed ) {..}
        else {..}
    }

См. официальное руководство от Oracle о if-then-else.

person Niccolò    schedule 02.02.2015
comment
Я думаю, вы имеете в виду if(guessHigh()){...} - person EDToaster; 02.02.2015