В моем последнем проекте я конвертировал несколько обычных циклов for в цикл for-each и столкнулся с парадоксальной проблемой.
imgMap = new int[rows][cols];
for (int r=0; r<imgMap.length; r++) {
rowArray = mapBR.readLine().split(",");
for (int c=0; c<imgMap[r].length; c++) {
imgMap[r][c] = Integer.parseInt(rowArray[c]);
}
}
System.out.println(imgMap.length+", "+imgMap[0].length);
// print array in rectangular form
for (int[] r : imgMap) {
for (int[] c : imgMap[r]) {
System.out.print(" " + c[0]);
}
System.out.println("");
}
imgMap - это двумерный массив int (int[][]
) для хранения 'map'
mapBR - это BufferedReader внешнегофайл, из которого берется 'map'
Первый вложенный набор циклов for читает файл, второй вложенный набор for-each записывает его в консоль, чтобы убедиться, что он читается правильно.
Iя не мог найти способ заставить первый набор цикла for работать как цикл for-each, так что это подзадача, и я был бы рад, если бы кто-то мог мне помочь.
В любом случае, вернемся кГлавная проблема.когда я (пытаюсь) скомпилировать это, компилятор извергает ошибку, говорящую о том, что строка int[] c : imgMap[r]
имеет несовместимые типы, но, и вот ловушка, когда я изменяю ее на int c : imgMap[r]
, , она вызывает ту же ошибку! Поскольку я не понимаю, как это может быть, кроме одного из этих типов, я сбит с толку.
Надеюсь, я предоставил достаточно информации.
IAmThePiGuy