A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 海尔蓝特 初级黑马   /  2018-4-17 23:12  /  963 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

"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, 下载次数: 12)

1.png

1 个回复

倒序浏览
加油,成为一名优秀的程序员。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马