0

我正在写我的第一个,如果你算上hello world,那么第二个,程序并遇到了一个小问题。

我的代码:

import java.util.*;

class test {
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);

    System.out.print("What is your name: ");
    String name = scan.nextLine();

    System.out.print("What is your favorite number: ");
    int favoriteNumber = scan.nextInt();

    System.out.print("What is your favorite game: ");
    String game = scan.nextLine();
}
}

因此它会扫描 name 和 favoriteNumber 但程序在要求用户输入最喜欢的游戏之前结束。本质上,用户只能输入两次文本,而不是我想要的三次。

4

2 回答 2

1

只是一个猜测: scan.nextInt()在用户按下回车后不消耗尾随的换行符。随后的调用scan.nextLine()then 发现有一个换行符在等待。

尝试切换int favoriteNumber = scan.nextInt();String favoriteNumber = scan.nextLine();查看是否可以解决问题。如果是这样,我的假设是正确的。

如果这种情况,那么您可能应该使用Integer.parseInt将此字符串转换为整数。这里的问题实际上是你真的想收集 3 行输入,其中一行被定义为“任何以换行符结尾的字符序列”。您的程序当前编写为请求一行,一个 int,然后是一行,而不是“3 行输入,其中一个包含一个 int”。

于 2013-07-03T05:07:23.470 回答
0

此处必须抛出异常 scan.nextInt(); 检查您是否输入了正确的 int

于 2013-07-03T05:07:13.360 回答