黑马程序员技术交流社区
标题:
为什么会有这个异常产生呢?
[打印本页]
作者:
黑马肖凯骏
时间:
2012-3-15 00:36
标题:
为什么会有这个异常产生呢?
本帖最后由 黑马肖凯骏 于 2012-3-15 00:43 编辑
/**
* @author Administrator
* int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
* 需求分析:
* 去掉数组所有的零,将不为0的值存入一个新数组。
*
*/
public class ZeroArry {
public static void main(String[] args)
{
int i=0,j=0;
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int newArr[]=new int[20];
for(i=0;i<oldArr.length;i++) //仔细看了下,原来这里多打了个分号
{
if(oldArr[i]!=0)
{
newArr[j]=oldArr[i];
j++;
}
}
for(int x:newArr)
{
System.out.print(x+",");
}
}
}
复制代码
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