Java 二维数组中的越界异常
在二维数组中求所有偶数之和和和所有奇数之积 为什么会出现以下越界异常错误Java 二维数组中的越界异常,java,arrays,double,dimensional,Java,Arrays,Double,Dimensional,在二维数组中求所有偶数之和和和所有奇数之积 为什么会出现以下越界异常错误 Exception java. lang. Array Index Out Of Bounds Exception 运行代码时,该异常出现在ifm[i][j]%2==0行 索引1处的m数组元素缺少第四个元素: {30,11,71} 将i
Exception java. lang. Array Index Out Of Bounds Exception
运行代码时,该异常出现在ifm[i][j]%2==0行
索引1处的m数组元素缺少第四个元素:
{30,11,71}
将i<4替换为i
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
//...
}
}
可能重复欢迎使用堆栈溢出!请带上,四处看看,并通读,特别是邮政编码和标记等文字,而不是作为图片的文字。原因:因为当i=1和j=4时,数组中不存在索引。出于某种原因,我得到变量r的结果为零,有什么解决方案吗?@JohnDoe,这是另一个问题。原因是您正在初始化r=0,因此无论您将其乘以什么值,结果始终为0。i、 e.:0*23=0,对吗?程序现在正在成功运行,感谢您的及时帮助出于某种原因,我得到了变量r的结果0,有什么解决方案吗?@JohnDoe r必须初始化为1,因为multiplication@ElmaCherb不是1,因为如果没有奇数,它将错误地返回1而不是0。我认为,这里的方法是在else条件中添加一个检查。在我的回答中,我做了一个更新来解释这一点。@JohnDoe很高兴你现在就可以工作了!考虑一下答案,因为未来读者知道问题已经解决了。
for (int i=0; i < 4; ++i) {
for (int j=0; j < m[i].length; ++j) {
if (m[i][j]%2 == 0) {
s += m[i][j];
}
else {
r *= m[i][j];
}
}
}
}
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
//...
}
}
else {
r = r == 0 ? m[i][j] : r * m[i][j];
}