for - garevna/js-course GitHub Wiki

ico25 Оператор for

ico20 Цикл

Цикл - это повторение одних и тех же действий несколько раз

Каждое повторение цикла называется итерацией цикла

var res = 0

for ( var i = 0; i < 10; i++ ) {
       res += i * 2
}

Переменная i называется переменной цикла ( счетчик )

Имя переменной можно выбрать любое ( a, x, t... )

Расшифровка выражения в круглых скобках:
( var i = 0; i < 10; i++ )
var i = 0 инициализируем переменную цикла, т.е. объявляем ее и присваиваем ей начальное значение 0
i++ способ изменения переменной цикла на каждой итерации
в данном случае после каждой итерации значение переменной цикла будет увеличиваться на единицу
i < 10 устанавливаем ограничение на число итераций цикла
( значение переменной цикла будет увеличиваться до тех пор, пока оно меньше 10 )
  • В данном примере к значению переменной res 10 раз будет добавлено значение вычисляемого выражения i * 2
  • На первой итерации цикла значением переменной цикла i будет 0, поэтому значение переменной res не изменится
  • После первой итерации значение переменной цикла i будет увеличено на единицу, и станет равно 1
  • На второй итерации цикла значение выражения i * 2 уже будет равно 2, это значение будет добавлено к значению переменной res, которое станет равно 2
  • После итерации значение переменной цикла i опять увеличится на 1 и станет равно 2
  • На третьей итерации выражение i * 2 примет значение 4
  • Это значение будет добавлено к значению переменной res, которое станет равно 2 + 4 = 6

И так далее...

cap-30 Массив

var res = 0
var arr = [ 2, 1, 5, 3 ]
var i
for ( i = 0;    i < arr.length;   i++ ) {
       res += arr [ i ]
}

У массивов, так же, как у текстовых строк, есть свойство length

Это свойство содержит число элементов массива ( или число символов в строке )

В качестве ограничения на число итераций цикла мы используем длину массива arr.length:

i < arr.length

т.е. пока переменная цикла меньше длины массива, цикл будет повторяться

В результате выполнения цикла в переменной res будет сумма элементов массива arr

warn-25 Можно изменять значение переменной цикла на каждой итерации на число, отличное от единицы

Следующий код выведет в консоль все нечетные числа от 1 до 20:

for ( var i = 1;  i < 20;  i += 2 ) {
    console.log ( i )
}

ico25 Директива continue

Прерывает выполнение текущей итерации цикла

Например, если нужно вывести в консоль только четные числа до 10, то можно сделать так:

for ( var i = 1;  i < 10;  i++ ) {
    if ( i % 2 === 0 ) console.log ( i )
}

А можно и так:

for ( var i = 1;  i < 10;  i++ ) {
    if ( i % 2 !== 0 )  continue
    console.log ( i )
}

Поскольку в теле условного оператора if всего одна операция, фигурные скобки мы опустили

% - это операция взятия остатка от деления ( 4 % 2 будет 0, 5 % 2 будет 1 )

x !== y значение или тип данных переменной x не совпадает со значением или типом данных переменной y


ico25 Директива break

Прерывает выполнение цикла

Например, если нужно вывести в консоль числа до 10, то можно сделать так:

for ( var i = 1;  ;  i++ ) {
    if ( i > 10 ) break
    console.log ( i )
}

Здесь условие на переменную цикла пропущено, что привело бы к бесконечному циклу, если бы мы не поставили прерывание цикла break внутри его тела


link-20 MDN

⚠️ **GitHub.com Fallback** ⚠️