EtienneZizka Ответов: 1

Javascript вопрос о циклах и массивах


Итак, я добился довольно большого прогресса, но в настоящее время меня озадачивает кое-что: петли.

**Прям как в дне:**
соответствующая ссылка:
[УДАЛЕННЫЙ]

Вот что я понял из всего этого:

а) i-это эквивалент итератора.
b) цикл " for` используется для повторения кода.
c) выражение итератора появляется во всех трех выражениях, составляющих цикл " for`.
d) начальными частями цикла являются: инициализация, условие остановки и оператор итерации.
д) инициализация: где начинается цикл, начальная точка, если хотите.

f) условие остановки: когда это условие будет выполнено, цикл остановится.

g) итерационный оператор: вот как цикл С делает свои модификации с отсутствием лучших слов.

h) из того, что я могу сказать, есть ++ и-до сих пор для оператора итерации. Я бы предположил, что есть и другие, но я еще не изучил их до сих пор.

i) ++ и -- означают сложение единицы и вычитание единицы соответственно.

j) в следующем примере:
![изображение|388x116](загрузить://igiXOQI2Pe0CoKL7FaMwWfscpQx.png)
Цикл будет начинаться с 0 (инициализатор), а затем подниматься на 1 за раз (оператор итерации), пока не достигнет числа ниже 4 (условие остановки).

к) консоль.log` будет записывать результат этого: 0, 1, 2 и 3.

l) мы можем выполнить цикл **через** массив. Это означает выполнение циклической операции над каждым элементом массива.

m) чтобы выполнить цикл по массиву, нам нужно использовать свойство `.length` в его состоянии.

n) в следующем примере:
![изображение|387x137](загрузить://tYK2cV9I9y97QHlgRo5K9NexhT5.png)
Мы имеем дело с индексом массива, поэтому мне нужно использовать [n], чтобы определить, какой массив я имею в виду. Другими словами, [0] - это медведь, [1] - Ленивец и [2] - Морской лев.

o) здесь вводится цикл, за которым следуют обычные скобки ( ). Затем переменная объявляется как итератор, что немного более запутанно, так как я не понимал, что мне нужна переменная, чтобы использовать цикл. Так что теперь я чувствую себя менее уверенно, но продолжаю. Затем я понимаю, что " я " здесь-это просто имя переменной, так что не нужно беспокоиться об этом. Следующее "Я", которое приходит после этого, - это условие остановки.

p) таким образом, инициализация находится в строке "Медведь Гризли". Затем он говорит: "животные.длина` и приращение равно +1 из-за ++.

**TLDR**: `длина` вроде как озадачивает меня.
>помните, что массивы имеют нулевую индексацию, индекс последнего элемента массива эквивалентен длине этого массива минус 1.

Похоже, что в этом случае есть указание на то, когда цикл должен остановиться. Может кто-нибудь объяснить?

Что я уже пробовал:

Я попробовал то, что написал в своем первоначальном сообщении выше.

Mohibur Rashid

ни один из ваших примеров изображений не виден нам.

1 Ответов

Рейтинг:
0

OriginalGriff

Давайте просто вернемся на минуту назад и подумаем о вас, когда вы выполняете повторяющуюся задачу: например, читаете книгу.
Вы начинаете с первой страницы (страница 1) и читаете это. затем вы переворачиваете страницу и читаете вторую. Затем вы переворачиваете страницу и читаете третью. это продолжается до тех пор, пока вы не прочтете последнюю страницу в книге, Когда вы остановитесь. Это все нормально (за исключением тех, кто сначала прочитал конец, чтобы узнать, что произошло, и они нам здесь не нужны!)
Таким образом, мы можем рассматривать это в терминах цикла:

1) set pageNumber to 1
2) if pageNumber > numberOfPagesInTheBook then all done, we've finished the book
3) read page(pageNumber)
4) add one to pageNumber
5) go to (2)

Итак, если мы подумаем об этом, у нас есть все четыре элемента цикла for:
Инициализация:
1) set pageNumber to 1
Испытание на окончание:
2) if pageNumber > numberOfPagesInTheBook then all done, we've finished the book

Тело:
3) read page(pageNumber)
Прирост:
4) add one to pageNumber

Индикатор того, что это петля:
5) go to (2)
Таким образом, мы можем написать это как цикл for:
for (int pageNumber = 1; pageNumber <= numberOfPagesInTheBook; pageNumber++)
    read(PageNumber);
Вы можете видеть, что это делает то же самое, это просто более компактно!
Когда вы обрабатываете каждую строку в массиве вы делаете то же самое:
String[] animals = {"Grizzly Bear", "Sloth", "SeaLion"};
for (int i = 0; i < animals.length; i++)
    System.out.println(animals[i]);
1) инициализация: создайте переменную, которая будет меняться каждый раз вокруг цикла, и установите ее на первый элемент:
для (int i = 0; я < животные.длина; i++)
    System.out.println(животные[i]);

2) Тест завершения: мы уже обработали последнюю строку?
for (int i = 0; i < animals.length; я++)
    System.out.println(животные[i]);

3) тело: сделайте что-нибудь с каждым элементом:
для (int i = 0; i < animals.длина; i++)
    System.out.println(animals[i]);

4) инкремент: переход к следующему элементу:
для (int i = 0; i < animals.длина; i++)
    System.out.println(животные[i]);

В этом есть смысл?