初学者提问:下面代码为什么会数组越界? 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;
}
}
for(int i=0;i<=3;i++)
你这里多了一个数字。
for(int i=0;i<3;i++)
for(int i=0;i<=3;i++) 循环4次
String[] name = new String[3];长度只有3,依次为name[0],name[1],name[2],没有name[3]
数组的下标是从0开始的
你的代码中是for(int i=0;i<=3;i++),,,这个循环了4次,所以就越界啦
应该改为for(int i=0;i<3;i++)
在Java里面关于遍历之类的问题,遍历下标大多都是从0开始的