java - 为什么我在这里得到 java.lang.ArrayIndexOutOfBoundsException?
问题描述
public long process(long[][] theArray) {
long result = 0l;
int xDimension = 0;
int yDimension = 0;
for (int i = 0; i < theArray.length; i++) {
for (int j = 0; j < theArray[0].length; j++) {
if (((yDimension + 12) < theArray.length) && ((xDimension + 12) < theArray[0].length)) {
result = (theArray[yDimension][xDimension + 1]) + (theArray[yDimension][xDimension + 2])
+ (theArray[yDimension + 1][xDimension]) + (theArray[yDimension + 1][xDimension + 3])
+ (theArray[yDimension + 2][xDimension]) + (theArray[yDimension + 2][xDimension + 3])
+ (theArray[yDimension + 3][xDimension + 1]) + (theArray[yDimension + 3][xDimension + 2]);
}
xDimension++;
}
xDimension -= (theArray[0].length);
yDimension++;
}
return result;
}// method()
--> 我的控制台说:索引 5 超出了长度 5 的范围。但是这与我的 if 条件一起怎么可能呢?
解决方案
xDimension
开始,0
并且在外循环的一次迭代后将是负数。
推荐阅读
- python - pyspark - 如何删除所有重复的行(忽略某些列)而不留下任何重复的对?
- python - 如何在 python 中正确添加和递增整数字典值?
- powerbi - Power BI - 在另一条记录的时间范围内查找记录
- r - 从长到宽的数据重塑
- android - WorkManager beginUniqueWork 队列在第一次工作后没有被调用
- ios - 添加新对话框时的 Quickblox iOS 通知
- teamcity - 将 TeamCity 参数设置为日期变量
- rust - 键入格式所需的注释!解析 postgres 结果时
- java - 捕获异常后如何在 for 循环中不增加?
- c# - Dotnet Core 2 上的 Windows 身份验证 Active Directory 登录对话框