返回的布尔值如何在参数中起作用(Java)

时间:2015-02-02 00:56:09

标签: java boolean arguments

所以下面的代码:

  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,然后next是随机生成的,所以它不是前一个数字。然后guesslow和guesshigh返回如果下一个&gt; last或nextMy问题是什么它返回?它会返回真还是假?还是喜欢一个号码? 在我的代码的另一部分:

public void update(boolean arg)// arg为true表示玩家猜对了       {

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

我将如何编写if语句,以便如果是guessLow或guessHigh为true则执行此操作,如果不是,则执行此操作? 非常感谢帮助

2 个答案:

答案 0 :(得分:0)

这两个方法返回一个布尔值。在if语句中,您只需将方法的名称写为:

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

或者如果你把它作为参数:

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

在这种情况下,我建议使用更有意义的名称来调用参数,例如hasCorrectlyGuessed。所以你可以把if语句写成

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

请参阅Oracle的official tutorial,了解if-then-else。

答案 1 :(得分:0)

基于arg参数的定义; true如果玩家猜对了。 arg将是truefalse

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.
}

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