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

如何在Java中使用for循环结合Scanner实现多次输入存入数组

问题原因

你编写的代码核心错误是接收输入的for循环末尾多了一个多余的分号:

for(a=0;a<number.length;a++);   // 末尾的分号会导致循环体为空

这个分号会被Java识别为for循环的空循环体,循环执行时只会把变量a从0累加至20,不会执行后续大括号内的输入逻辑。等循环结束后大括号内的代码只会执行1次,此时a的值为20,访问number[20]还会触发数组下标越界异常。


修正后代码

import java.util.Scanner;
public class array2 {
    
     public static void main(String[]sef)
     {
         int a=0;
         int number[]=new int[20];
         Scanner scan=new Scanner(System.in);
         // 删掉for循环末尾的分号即可正常执行多轮输入逻辑
         for(a=0;a<number.length;a++)
         {
             System.out.println(a+"번째 학생의 숫자를 입력하십시오");  
             number[a]=scan.nextInt();
             
         }
         scan.close();
         // 如果需要输出全部20个元素,可以把a<10改成a<number.length
         for(a=0;a<10;a++)
         {
             System.out.println(number[a]);   
         }
     }
}

可选优化建议

  • 可以给输入逻辑增加非整数输入的异常捕获,避免用户输入非法内容导致程序崩溃
  • 变量命名可以更具语义化,比如把变量a改为index,提高代码可读性
  • 如果数组长度需要灵活调整,可以把数组长度定义为常量,方便后续统一修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:18:01