我有以下代码片段但是当我执行它时不会打印出die的值。
以下是源代码:
System.out.println("Player 1s Go.\nEnter R to Roll and H to Hold");
input = scanner.next();
while (input.equals("R")) {
input = scanner.next();
die.throwDie();
System.out.println("Value on Die: " + die.getFaceValue());
if (rolledOne()) {
player1Rolled.clear();
System.out.println("Player 1 scored 0, End of turn");
holdPlayer1 = true;
holdPlayer2 = false;
break;
} else {
player1Rolled.add(die.getFaceValue());
}
}
getFaceValue()
是die类的访问器方法,它返回die的值。 throwDie()
是一种mutator方法,它可以更改值并模拟骰子的滚动。
我得到的输出如下:
Player 1s Go.
Enter R to Roll and H to Hold
*R
R*
Value on Die: 5
*R*
Value on Die: 5
*R*
请注意,我必须告诉它滚动两次,它滚动两次但只打印出第二次滚动的值。
答案 0 :(得分:1)
您拨打scanner.next()
两次。一旦进入循环并进入内部。如果第一个输入为“R”,则进入while循环并立即等待新输入。
将input = scanner.next();
移到循环的末尾而不是开头,我认为应该为您提供您正在寻找的行为。