所以我是一个新的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(); } }
答案 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 //
///////////////////////////////////////////
}