黑马程序员技术交流社区

标题: 为什么会有这个异常产生呢? [打印本页]

作者: 黑马肖凯骏    时间: 2012-3-15 00:36
标题: 为什么会有这个异常产生呢?
本帖最后由 黑马肖凯骏 于 2012-3-15 00:43 编辑
  1. /**
  2. * @author Administrator
  3. * int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
  4. * 需求分析:
  5. * 去掉数组所有的零,将不为0的值存入一个新数组。
  6. *
  7. */
  8. public class ZeroArry {
  9.         public static void main(String[] args)
  10.         {
  11.                 int i=0,j=0;
  12.                 int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
  13.                 int newArr[]=new int[20];
  14.                 for(i=0;i<oldArr.length;i++) //仔细看了下,原来这里多打了个分号
  15.                 {
  16.                         if(oldArr[i]!=0)
  17.                         {
  18.                                 newArr[j]=oldArr[i];
  19.                                 j++;
  20.                         }
  21.                 }
  22.                 for(int x:newArr)
  23.                 {
  24.                         System.out.print(x+",");
  25.                 }
  26.         }
  27.        

  28. }
复制代码
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 16
        at abc.ZeroArry.main(ZeroArry.java:21)
作者: 黑马肖凯骏    时间: 2012-3-15 00:43
问题已经解决
作者: 蒙武辉    时间: 2012-3-15 00:45
{:soso_e110:}有很多错误,见多了我们就会拉。
作者: 张希强    时间: 2012-3-15 00:53
for(i=0;i<oldArr.length;i++); 这个;让i变成了16 ,当然数组越界了。




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