for(int i=Mas.length-1;i>=0;i--){
System.out.println(Mas[i]);
}
Для вывода значений массива в обратном порядке использовала это выражение. И после решения задачи затупила: мы отнимаем единицу от размера массива, потому что нумерация с нуля?
Rina
16 уровень
Номер ячейки и её значение.
Решен
Комментарии (16)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
KIRAExpert
3 сентября 2021, 12:01решение
Да, длинна массива на единицу больше чем последний индекс в массиве
+1
Rina
5 сентября 2021, 10:54
Окей, а если вложенный цикл, почему переменная во вложенном цикле всегда меньше массива во внешнем? Например:
Был массив на 6 элемнтов. Внешний цикл создал(?)строчки (0-5) , но почему ячеек меньше на 1? ( я про строку j < data[i].length). 0
KIRAExpert
5 сентября 2021, 12:17
приложите код полностью, у вас двумерный массив?
0
Rina
6 сентября 2021, 07:56
0
KIRAExpert
6 сентября 2021, 09:25
А где в этом коде вложенный цикл?
0
Rina
6 сентября 2021, 16:01
Я не дописала. На основе этой задаче возник вопрос. Почему количество элементов во внутреннем цикле меньше, чем количество элементов в массиве внешнего цикла. Объясните, пожалуйста, на примере двумерного массива.
0
KIRAExpert
6 сентября 2021, 17:04
Тут нет двумерного массива, я не понимаю ваш вопрос.
Двумерный массив это к примеру int [][] array = new int [3][3];
0
Rina
7 сентября 2021, 09:06
Я понимаю, что здесь нет двумерного массива. Я вышла за рамки условий этой задачи и спрашиваю про двумерный массив. Например:
Переменная j меньше, чем длина массива result[I]. Это потому, что нумерация с 0? 0
hidden #598481
7 сентября 2021, 09:48решение
да, ровно по той же самой причине.
Здесь вообще можно забыть о том, что у тебя есть i и есть двумерный массив. На этапе внутреннего цикла имеет значение только то, что result[i] является массивом, содержащим некоторое неотрицательное число элементов.
Чтобы проще было абстрагироваться, можно за каждом этапе внутреннего цикла записывать полученный одномерный массив в отдельную переменную:
Я видел твои вопросы про то, что значит "перебирать массив". Не уверен, до конца ли ты разобралась.
Сам по себе цикл for ни с каким массивом не связан. Сравни:
В обоих циклах используется переменная счетчик i, которая изменяется от нуля, до некоторого предела, с каждым шагом увеличиваясь на один. Да, во втором случае мы используем в качестве предела не константу 5, а длину массива, но длина - это просто число, в данном случае так же равное пяти. То есть нам просто удобно ограничить количество итераций в цикле таким же числом, которому равна длина массива.
Другими словами, мы говорим программе: выполни следующий код при i = 0, потом при равном 1, 2, 3 и 4.
То есть i - это просто переменная, которая по очереди примет 5 разных значений, а уж как ее использовать - это вопрос отдельный.
+3
hidden #598481
7 сентября 2021, 09:55
И поскольку при такой нотации
мы всегда понимаем, что i примет все возможные значения, которые могут иметь индексы в этом массиве, мы можем обращаться к i, как к индексу.
Не будь у нас цикла, мы бы написали следующее:
Но если у нас есть такое i, которое в цикле будет менять значения от 0 до 4, то мы можем использовать i вместо того, чтобы использовать константы в индексах.
То есть цикл напрямую не связан с массивом какой-то магической связью, мы просто используем меняющееся значение отдельно взятой переменной в качестве индекса элементов массива.
А такая форма записи очень удобна для запоминания:
Это каноничная запись цикла for. При такой записи всегда будет такое же количество итераций, которому равно limit, и если limit - это длина какого-то массива, то будут перебраны все элементы этого массива от первого до последнего. +3
Rina
7 сентября 2021, 10:28
Я уверена, что не до конца разобралась. И пытаюсь находить информацию везде. Очень благодарна, что могу находить такое подробное объяснение здесь. Хотя крепко в голову ещё не ложится. Спасибо за ответы!
0
hidden #598481
7 сентября 2021, 11:36
Понимаю. Можешь здесь же уточнить какие-то моменты, которые тебе непонятны.
+2
Rina
9 сентября 2021, 11:12
Спасибо! Тогда, например, вот;
Правильно ли я понимаю, что внешний цикл " выбирает" первую строку, а внутренний вносит значения в её ячейки? И после каждой итерации внешнего цикла полностью заполняется строка (по горизонтали) ? 0
hidden #598481
9 сентября 2021, 11:32
Все правильно!
+2
Rina
9 сентября 2021, 19:29
Фух, тогда момент просветления настал!)) ещё раз спасибо! Хотя и не факт, что это последний вопрос по циклам и массивам...)
0
hidden #598481
10 сентября 2021, 07:13
😉
0