在If语句中使用方法的返回值

时间:2015-01-06 01:37:17

标签: java

所以我是一个新的Java程序员,这可能只是一个让我头脑发热的概念。但是如果我在程序中调用一个布尔方法,例如下面的keepDice2,我如何在if语句中检查false-的返回值-true?以下是我的尝试。

我正在尝试创建一个方法keepDice2,如果用户输入包含'N'或'n'的String,则返回布尔值false。然后,我想做一个if状态:如果返回值是布尔值false,则调用方法rollDice2(我没有包括rollDice2,因为它似乎无关紧要)。任何对此的见解都将非常感激!

public static boolean keepDice2() {
            Scanner input = new Scanner(System.in);
            System.out.println("Keep Dice Two?");
            String keepDice = input.nextLine();
            boolean answer;
            if (keepDice.contains("n") || keepDice.contains("N")) {
                answer = false;
                //here, if the answer contains n or N, then it is a form of "No", so that dice will be re-rolled.   
            }
            else {
                answer = true;
            }
            return answer;
        }
public static void (String[] args) {
    if (keepDice2() == false) {
            rollDice2();
                }
             }

2 个答案:

答案 0 :(得分:4)

keepDice2()返回布尔值,因此您无需进行比较。您还忘记将方法命名为main

public static void main (String[] args) {
    if (!keepDice2()) {
      rollDice2();
    }
  }

答案 1 :(得分:0)

你写的是正确的,但你可以用更少的代码实现相同的结果。 一个if语句括号内的所有内容都是一个布尔表达式。因此,如果你想编写将在这个表达式返回true的情况下运行的代码,你只需要在括号中写下这个表达式,如果你希望它运行以防它返回你刚刚放入的fals!在它面前。 当量:

if(keepDice2()) {
        rollDice2();
        ///////////////////////////////////////////
        // put here rest of code you want to run //
        // if keepDice2() returns true           //
        ///////////////////////////////////////////     
    }
    /*if keepDice2 returns false. 
     * But since
     * there are only two possible outcomes
     * you can just use else statement instead
     * if else if with boolean expression in 
     * brackets 
     */
    else if (!keepDice2()) {

        ///////////////////////////////////////////
        // put here the code you want to run     //
        // if keepDice2() returns false          //
        ///////////////////////////////////////////
    }