如何在Java中通过for循环获取用户输入并将变量存入数组?
循环输入填充数组的解决方案
正确实现代码
import java.util.*; public class Main { public static void main(String[] args) { // 仅创建一次Scanner实例,复用获取输入 Scanner sc = new Scanner(System.in); // 初始化长度为10的int数组 int[] array = new int[10]; for (int i = 0; i < array.length; i++) { System.out.print("Enter a number- "); // 将输入值直接赋值给数组对应索引的元素 array[i] = sc.nextInt(); } // 可选:打印数组验证结果 System.out.println("\n你输入的数组内容:"); for (int num : array) { System.out.print(num + " "); } } }
你尝试的代码存在的问题
- 变量作用域问题:
int a定义在循环内部,属于循环的局部变量,循环外部的数组无法访问这个变量,编译会直接报错。 - Scanner重复实例化:每次循环都新建
Scanner完全没必要,不仅浪费资源,还可能引发输入读取异常,只需在循环外创建一次即可。 - return使用错误:
main方法的返回类型是void,不能通过return a;返回值,这会导致编译失败。 - 数组初始化逻辑错误:你用
{a,a,...}的方式初始化数组,既因a作用域问题无法编译,就算能通过,也只会把同一个值填充到数组所有位置,不符合逐个输入的需求。
关键实现思路
- 先初始化指定长度的数组:因为你明确要存储10个输入值,直接创建
new int[10]即可。 - 循环遍历数组索引:通过循环逐个处理每个数组位置,将用户输入直接赋值到对应索引。
- 复用Scanner实例:避免重复创建输入流对象,保证输入读取的稳定性。
内容的提问来源于stack exchange,提问作者Dewotto
相关产品推荐
相关产品推荐

