-1

我的完整代码粘贴在这里。以下是与我的问题相关的两种方法。

private static boolean playGameAgain()
{
        char playAgain = 'y';
        Scanner input = new Scanner(System.in);
        while(playAgain != 'n')
        {
                System.out.println("Go again?(y/n)");
/// PROBLEM HERE....  Somehow, it will NOT wait for INPUT. It just throws an error
                playAgain = input.next().charAt(0);
        }
        input.close();
        return (playAgain != 'y')?false:true;
}

// [Trimmed]

public static void initialize(ArrayList<String> names, ArrayList<Integer> scores)
{
        Scanner input = new Scanner(System.in);
        for (int i = 1; i <= 5; i++)
        {
                System.out.println("Enter the name for score #" + i + ":");
                names.add(input.nextLine());
                System.out.println();
                System.out.println("Enter the score for score #" + i + ":");
                while(!input.hasNextInt())
                {
                        //input.nextLine();
                        System.out.println("Please input a valid integer value for the score for #" + i + ":");        
                        if(!input.hasNextInt())
                                 input.nextLine();
                }
                scores.add(input.nextInt());
                input.nextLine();
        }
        input.close();
}

我已经尝试了许多如何阅读一个字符的组合。这曾经有效,我可以使用以下方法读取一个字符:

Scanner input = new Scanner(System.in);
char temp = input.next().charAt(0);

但是,不知何故,在我编写的这个程序中,它不起作用。

这是一个程序,它将读取 5 个用户名(字符串)和 5 个分数(整数)并将它们放入 2 个数组中。它将按降序对数组进行排序,然后将它们打印出来。所以,我唯一的问题是问他们是否想再玩一次并输入一些字符来看看他们是否想再玩一次(y/n)?

如果可以的话请帮忙。我尝试了许多组合:if (input.hasNext()),但无济于事。

4

1 回答 1

0

您没有设置playAgain为 'y' 以外的其他内容playGameAgain()。你这里有一个错误。

于 2015-02-15T19:57:58.243 回答