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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lanzy1989 中级黑马   /  2014-9-17 20:46  /  985 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数组遍历是数组的基本操作,相信很多人都会,但是在数组定义问题中,且有很多要注意的东西,下面这个问题就是我在设置数组是出现的一些问题:
int[][] arr1=new int[3][4];
  arr1[2][3]=34;
  arr1[2][2]=54;
  arr1[2][1]=34;
// arr1[2][0]=34;
  //arr1[1]=new int[]{32,34,12}; --------------第六行
  arr1[0]=new int[]{34,45,23,12};
  for (int j=0;j<3 ;j++ )
  {for (int i=0;i<4 ;i++ )
  {
   System.out.print("\t"+arr1[j]);
  }
  System.out.println();
  }
}
上面是一个二维数组的实例,众所周知的是,在给二维数组定义时,如果给出二维数组的两个参数,如上面的int【3】【4】;那么程序在给数组arr1分配空间时就会默认初始化数组,int型的数组就给初始化为0,string型的数组会初始化为null,按照这个思想,那么如果我不给数组赋值,那么在遍历数组输出数组元素的时候就会输出的都是0了,而输出结果也正是这样的,但是如果按照第六行的赋值方式,却无法输出0,空位不会输出为0,而会显示数组越界异常;如果显示的给出数组各元素的值,那么一行的数值都必须给出,缺少一个,就会显示越界异常,如果二维如下设置就会出现下角标越界异常:(给出的元素个数与设定的元素个数不一致)
int[][] arr=new int[5][6]; -------------设定了一维里面有6个数,
  arr[4]=new int[]{23,234,34}; ---------而给出的却只有3个数,不会补零,只会抛异常,编译可以通过,但是运行会出问题
  for (int i=0;i<6 ; i++)
  {
   System.out.println(arr[4]); }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马