public static void main(String[] args) throws IOException {
Scanner scan = new Scanner(System.in);
int i=0;
int arr[] = new int[10];
while(scan.hasNext()){
arr[i++] = scan.nextInt();
System.out.println("sud");
}
System.out.println("hello");
}
}
如果输入是1 2 3 4 5
然后打印5次。 sud 表示 while 循环正在工作,但它不会转到 System.out.println("hello");
线或超出线。
请您参考如下方法:
由于您正在从 System.in
读取数据, hasNext()
当您在控制台模式下运行时,等待您输入更多数据。
为了告诉Scanner
没有更多的输入,您需要关闭输入流。在 Windows 上,它是 Ctrl+Z 后跟 Enter。在 UNIX 上,它是 Ctrl+D。
如果您将输入放入文件中,并将程序重定向为从文件中读取,您的代码也将起作用。
注意:您需要保护您的代码免遭用户输入过多数据的影响。添加i < arr.length
到循环条件,否则当最终用户输入第 11 个数字时,您的代码将停止并出现异常。
while(i < arr.length && scan.hasNext()) {
...
}