编译的时候提示java.lang.ArrayIndexOutOfBoundsException: -1;请问如何解决。

publicclassJ_Gridl5{int[][]m_board;J_Gridl5(){m_board=newint[3][3];}privatebooleanmb_... public class J_Gridl5
{
int [][] m_board;
J_Gridl5()
{
m_board = new int [3][3];
}

private boolean mb_dataChectDifferent()
{
int i,j;
int[] digit = new int[10];
for (i=0;i<m_board.length;i++)
{
for(j=0;j<m_board[i].length;j++)
digit[m_board[i][j]]=1; //提示这句有问题

}
for (i=1,j=0;i<digit.length;i++)
j+=digit[i];
if (j==9)
return (true);
return (false);
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at J_Gridl5.mb_dataChectDifferent(J_Gridl5.java:70)
at J_Gridl5.mb_dataCheck(J_Gridl5.java:104)
at J_Gridl5.mb_arrange(J_Gridl5.java:119)
at J_Gridl5.main(J_Gridl5.java:130)
代码只是列出我觉得有用的那一小部分
展开
 我来答
多么疯狂
2012-07-15 · 超过28用户采纳过TA的回答
知道答主
回答量:197
采纳率:0%
帮助的人:81.9万
展开全部
数组下标越界了,看看你的循环中是不是超过数组最大了
追问
数组下标越界我知道,有没有具体点的。不知道应该怎么改
追答
[m_board[i][j]]中的数据作为digit数组的下标,你看看[m_board[i][j]]中的数据是不是有超过10的数存在,因为你的digit数组长度只有10      int[] digit = new int[10];
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
coderliruiqing
2012-07-15
知道答主
回答量:7
采纳率:0%
帮助的人:3.7万
展开全部
数组下标越界,应该是你的数组为空,你没有判断,就直接用数组下标去取数组里的元素。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lw243067266
2012-07-15
知道答主
回答量:6
采纳率:0%
帮助的人:9652
展开全部
数组下标越界,打断点调试一下 看m_board[i][j] 取出来的值是否比digit的最大数组索引大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式