// применение цикла for в стиле for each для обращения к двухмерному массиву
public class ForEach3 {
public static void main (String args []) {
int sum = 0;
int nums [] [] = new int [3] [5];
// присвоить значение элементам массива nums
for (int i = 0; i<3; i++)
for (int j = 0; j<5; j++)
nums [i] [j] = (i+1) * (j+1); // что значит (i+1)*(j+1)?
// вывод и суммирование значений
for (int x [] : nums) {
for (int y : x) {
System.out.println("Значение равно " + y);
sum += y;
}
}
System.out.println("Сумма равна " + sum);
}
}
yuliyakur2709
7 уровень
Коллеги, подскажите пожалуйста.
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
10 сентября 2021, 17:42
это значит, что минимальный элемент, который находится в массиве - единица.
Нумерация индексов массива начинается с 0 (нуля).
Поэтому цикл:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
nums [i] [j] = i * j;
выведет табличку умножения, от 0 до 9, и будет куча нулей - ведь умножение на 0 = ноль.
А чтобы вывести табличку от единицы, нужно либо цикл так писать:
либо
либо, если итерироваться от 0 к 10
то добавлять +1, как в твоем примере.
Все эти +1/-1 выходят из-за того, что для нас, людей, массив обычно выглядит так:
[1] - первый элемент
[2] - второй элемент
[3] - третий элемент
[4] - четвертый элемент
это нумерация домов, ячеек хранения и тд.
Есть по-моему языки программирования, в которых нумерация индексов массивов начинается с 1.
Но в компьютерах внутри, нумерация начинается с 0 и поэтому массивы, отображают эту структурную особенность компьютеров.
Но на стыке нашего (человеческого) восприятия и компьютерного и бывает иногда расхождения - и тогда приходится корректировать +1/-1 в зависимости от того, что нам нужно.
Поскольку индекс 0, но мы туда помещаем единичку. 1 - 0 = +1 :)
0
yuliyakur2709
12 сентября 2021, 00:36
спасибо огромное за такой развернутый ответ!)
+1