Я создал программу для назначения, которая требует от меня отображения элементов массива с использованием вложенных улучшенных циклов for.
Я получаю сообщение об ошибке, что он не может преобразовать тип элемента Integer [] в тип int.
myArray
уже был создан и правильно инициализирован в конструкторе. Я знаю, что это правильно, потому что я могу отображать элементы массива в формате списка просто отлично, от 1 до 60.
public void displayArrayProduct() {
DecimalFormat decimalFormat = new DecimalFormat("#.##");
decimalFormat.setGroupingUsed(true);
decimalFormat.setGroupingSize(3);
int p=1;
System.out.print("The product of all element of myArray is ");
for (int a : myArray) {
for (int b : myArray) {
p = p + myArray[a][b];
}
}
System.out.println(decimalFormat.format(p));
}
}
Я ожидал, что это будет выводить сумму всех элементов массива. Я попробовал ту же самую вещь с обычными для циклов, и это работало отлично. К сожалению, когда я переключился на расширенный цикл for, он перестал работать, выдав мне ошибку:
Несоответствие типов: невозможно преобразовать тип элемента Integer [] в int
Вот так выглядит мой конструктор:
ExerciseTwo () {
myArray = new Integer[6][10];
for (int i = 0; i < myArray.length; i++) {
for (int j = 0; j < myArray[i].length; j++) {
this.myArray[i][j] = i + 1;
}
}
}