下面这个小程序javac成功,但java时显示Exceptiong in thread “main” java.lang.arrayIndexOfBoundsException:3 at welcome.main(welcome.java:7),为什么?谢谢!
------------------------------------------------------------------
   public class welcome
{
 public static void main(String[] args)
  {String[] greeting=new String[3];
  greeting[1]="This test1";
  greeting[2]="This test2";
  greeting[3]="This test3";
  
  for(int i=1;i<=3;i++)
System.out.println(greeting[i]);
}
}

解决方案 »

  1.   


    编译javac当然可以通过了。但是执行java的时候,数组本来就是new String[3];, 下标应该是0,1,2。你结果用到了reeting[3],所以报越界的异常啦。
      

  2.   

    public class welcome 

    public static void main(String[] args) 
      {
      String[] greeting=new String[3]; 
      greeting[0]="This test1"; 
      greeting[1]="This test2"; 
      greeting[2]="This test3"; 
      
      for(int i=0;i <3;i++) 
    System.out.println(greeting[i]); 

    }
    你这样试下 顺便try{} catch(){}一下
    捕获下标越界问题