Java Scanner 在 For 循环后不接受输入

标签 java input for-loop

我目前正在开发一个程序,要求输入两个团队的名称和分数。当我请求输入第一队的姓名和 9 分时,扫描仪可以正常接受输入。但是,在 for 循环之后,扫描器不接受第二个团队名称的输入。这不是整个程序,但我已经包含了所有代码,直到它给我带来麻烦为止。我怀疑它可能与 for 循环有关,因为当我将它放在 for 循环之前时,team2 可以很好地接受用户输入。

import java.util.Scanner;
public class sportsGame{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        String team1;
        String team2;
        int team1Scores[] = new int[9]
        int team1Total = 0;
        int team2Scores[] = new int[9];
        int team2Total = 0;

        System.out.print("Pick a name for the first team: ");
        team1 = input.nextLine();

        System.out.print("Enter a score for each of the 9 innings for the "
                + team1 + " separated by spaces: ");
        for(int i = 0; i < team1Scores.length; i++){
            team1Scores[i] = input.nextInt();
            team1Total += team1Scores[i];
        }
        System.out.print("Pick a name for the second team: ");
        team2 = input.nextLine();
    }
}

最佳答案

Scanner 的 nextInt 方法不跳过一行,只获取 int。所以当第一个循环结束时,还剩下一个换行符,你的 input.nextLine() 返回一个空字符串。在你的循环之后添加一个 input.nextLine() 来跳过这个空白行并像这样解决你的问题:

for(int i = 0; i < team1Scores.length; i++){
    team1Scores[i] = input.nextInt();
    team1Total += team1Scores[i];
    }
input.nextLine();
//rest of your code

关于Java Scanner 在 For 循环后不接受输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12821567/

相关文章:

java - 如何在主类中使用 amazonSQSClient() 方法?

java - 包含 Random 对象变量的类(类的实例)可以是不可变的吗?

java - 就 StringBuilder 和 StringBuffer 类而言,同步意味着什么?

Numberpad 的 Android 模拟器键盘输入不再有效

matlab - 为什么矢量化代码比 MATLAB 中的循环运行得更快?

windows - 如何从批处理例程中输出特定行?

Java:附加文本文件时跳过用户输入的第一行?

java - 用逗号和空格分割输入的字符串

javascript - 在 react 中编辑字符串的中间总是到最后

c - 打印 for 循环迭代的最终值