无法使用Scanner类输入

时间:2015-07-22 19:11:15

标签: java

请参阅下面的代码,在这段代码中,我想一次又一次地为每个输入实例声明Scanner类实例,我知道我可以在循环外声明Scanner类实例,问题将得到解决。但我只是告诉你我如何在其他地方实现相同的概念。我不能在这里编写那些代码,这就是为什么我希望你们通过理解我的观点让人们给我解决方案。

import java.util.Scanner;

public class TestScanner {
    public static void main(String[] args) {
        int a[] = new int[4];

        System.out.println("Enter elements in array: ");

        for (int i = 0; i < a.length; i++) {
            Scanner scanner = new Scanner(System.in);
            a[i] = scanner.nextInt();
            scanner.close();
        }

        System.out.println("The Arrays is : ");

        for (int i : a) {
            System.out.println(i + "  ");
        }
    }
}

2 个答案:

答案 0 :(得分:2)

删除行scanner.close();,因为它会禁用通过System.in接收新输入。在scanner循环的每次迭代中,您仍然需要for

答案 1 :(得分:0)

您可以像这样修改代码。您可以在循环中重用scanner对象,无需每次迭代创建一个。

Scanner scanner;
for (int i = 0; i < a.length; i++) {
   scanner = new Scanner(System.in);
   a[i] = scanner.nextInt();
}
scanner.close();