来自扫描仪的输入不会转移到变量?

时间:2016-03-06 16:11:42

标签: java arrays java.util.scanner

在继续开发这个应用程序之前,我意识到如果我按照请求将方法拆分为方法,我就无法将输入转移到变量n中。 这导致grade()部分,而不是触发所有for循环。 我试图在数组上放一个固定值(即3而不是n)并且它有效,所以这意味着在输入输入后变量n仍然为0。 调整应用程序以在main方法中运行all工作正常,但我注意到我必须在main方法中声明变量 我要做什么将数据传递给变量n?非常感谢!

//code removed

1 个答案:

答案 0 :(得分:0)

您已全局初始化name[]数组。 那么,在display函数中,当您在2到25之间输入n的值时,它会被设置为全局变量n。但是,您的字符串数组name已经初始化。即它的大小为零。在显示功能更新n后,它不会更新为n大小。 在将name[]值放入显示功能后,您需要包含一行来初始化数组n

    n = in.nextInt();
    while ((n < 2) || (n > 25)) {
        System.out
                .println(">>>>>>>>>>>>>>>> Please enter a number between 2 and 25 <<<<<<<<<<<<<<<<");
        n = in.nextInt();
    }
    name = new String[n];