请参阅下面的代码,在这段代码中,我想一次又一次地为每个输入实例声明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 + " ");
}
}
}
答案 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();