You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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作用域问题无法编译,就算能通过,也只会把同一个值填充到数组所有位置,不符合逐个输入的需求。

关键实现思路

  1. 先初始化指定长度的数组:因为你明确要存储10个输入值,直接创建new int[10]即可。
  2. 循环遍历数组索引:通过循环逐个处理每个数组位置,将用户输入直接赋值到对应索引。
  3. 复用Scanner实例:避免重复创建输入流对象,保证输入读取的稳定性。

内容的提问来源于stack exchange,提问作者Dewotto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:25:24