u014157400
MgZ_
采纳率100%
2017-05-04 08:55

初学者提问:下面代码为什么会数组越界?

已采纳

初学者提问:下面代码为什么会数组越界? java.lang.ArrayIndexOutOfBoundsException: 3

public class example033 {
public static void main(String[] args){
String[] m = new String[3];
m=jion();
for(String n: m)

System.out.println(n+", ");

}
public static String[] jion(){
String[] name = new String[3];
for(int i=0;i<=3;i++){
System.out.println("请输入第"+(i+1)+"位抽奖者姓名:");
Scanner in =new Scanner(System.in);
String n = in.nextLine();
name[i]=n;
}
return name;

}

}


  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • oyljerry oyljerry 4年前
     for(int i=0;i<=3;i++)
    

    你这里多了一个数字。

     for(int i=0;i<3;i++)
    
    点赞 2 评论 复制链接分享
  • weixin_36769686 Ami176 4年前

    for(int i=0;i<=3;i++) 循环4次
    String[] name = new String[3];长度只有3,依次为name[0],name[1],name[2],没有name[3]

    点赞 3 评论 复制链接分享
  • qq_25385853 我是初级程序猿 4年前

    在Java里面关于遍历之类的问题,遍历下标大多都是从0开始的

    点赞 评论 复制链接分享
  • Ideal__Lee HengHa__Lee 4年前

    你的代码中是for(int i=0;i<=3;i++),,,这个循环了4次,所以就越界啦
    应该改为for(int i=0;i<3;i++)

    点赞 评论 复制链接分享
  • qq_25449449 萌萌的糖宝 4年前

    数组的下标是从0开始的

    点赞 评论 复制链接分享

相关推荐