java - 使用扫描仪类输入时不打印字符串

标签 java java.util.scanner

我有以下代码片段,但是当我执行它时,它没有打印出骰子的值。

源代码如下:

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() 是骰子类的访问器方法,它返回骰子的值。 throwDie() 是一个改变值并模拟骰子滚动的变异方法。

我得到的输出如下:

Player 1s Go.
Enter R to Roll and H to Hold
*R
R*
Value on Die: 5
*R*
Value on Die: 5
*R*

请注意,我必须告诉它滚动两次,它滚动两次但只打印出第二卷的值。

最佳答案

您调用 scanner.next() 两次。一次在循环外,一次在循环内。如果第一个输入是“R”,则进入 while 循环并立即等待新输入。

input = Scanner.next(); 移动到循环的末尾而不是开始,我认为应该会给您带来您正在寻找的行为。

关于java - 使用扫描仪类输入时不打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9428564/

相关文章:

java - 学生个人日程安排器

java - 增加 @ElementCollection 中元素的大小

java - ArrayList 给出错误(加上方法帮助)

java - 使用 java.util.Scanner 逐字节读取文件

java - 如何从一个数组中减去一些已经在另一个数组中的元素?

java - 如何在 openGL ES 3 android 中创建 VAO

java - 在运行时在 Jetty 中设置 ssl keystore

Java 谷歌应用程序引擎 : Do I need to make an object persistent before adding it to another persistent object's persistent data structure?

java - 读取字符串时遇到问题

java - 将从文件中读取的数据放入记录中