黑马程序员技术交流社区

标题: ArrayIndexOutOfBoundsException [打印本页]

作者: 海尔蓝特    时间: 2018-4-17 23:12
标题: ArrayIndexOutOfBoundsException
"ArrayIndexOutOfBoundsException"



package One;
import java.util.Random;
/*定义一个长度为6的int型数组,
* 之后生成6个随机数存入数组,随机数范围为25到90(包含25和90),
* 遍历数组,将数组中小于50的元素替换成0,
* 之后打印修改后的数组*/
public class Test06 {
        public static void main(String[] args) {
                int[] arr = new int[6];
                Random random = new Random();
                System.out.print("["+" ");
                /*for(int i=0;i<arr.length;i++){
                         arr=random.nextInt(66)+25;
                       
                        if (arr < 50) {
                                arr = 0;
                            }
                        }*/
                int i=0;
                while(i<arr.length){
                        arr=random.nextInt(66)+25;
                       
                        if(arr<50){
                                arr=0;
                          }
                        System.out.print(arr + " ");
                    i++;
                }
                        /*
                         * switch(arr){ case1: ...:}
                         */
               
        System.out.print(" "+"]");
}
}







索引超出了数组界限:我们的常客;

简单的来讲:限制索引取值范围(0到 (数组长度-1)),或者增加数组的长度数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
数组是通过下表进行访问,但超出下标(索引)最大值(数组长度-1)就会访问超出界限
如:int [] arr= new int[2];;   
       arr[0]=1;

       arr[1]=2;

--此数组长度为2,下标最大为1(数组下标从0开始)
--如果下标超出0-1这个范围就会出现索引超出界限问题。
--限制下标(索引)的取值范围,或者数组长度增加都可以防止索引超出界限

















从图中可以看出

往往因为变量i++的位置或者{}的位置,我们这群新手期小菜鸟,经常与他相会!!!



所以我们要养成严谨的性格,写程序要有条理,编写规范。






1.png (111.67 KB, 下载次数: 5)

1.png

作者: cj1234    时间: 2018-4-18 10:25
加油,成为一名优秀的程序员。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2