for - garevna/js-course GitHub Wiki
Цикл - это повторение одних и тех же действий несколько раз
Каждое повторение цикла называется итерацией цикла
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 ) |
- В данном примере к значению переменной
res10 раз будет добавлено значение вычисляемого выраженияi * 2 - На первой итерации цикла значением переменной цикла i будет 0, поэтому значение переменной
resне изменится - После первой итерации значение переменной цикла i будет увеличено на единицу, и станет равно 1
- На второй итерации цикла значение выражения
i * 2уже будет равно 2, это значение будет добавлено к значению переменнойres, которое станет равно 2 - После итерации значение переменной цикла i опять увеличится на 1 и станет равно 2
- На третьей итерации выражение
i * 2примет значение 4 - Это значение будет добавлено к значению переменной
res, которое станет равно2 + 4 = 6
И так далее...
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
Можно изменять значение переменной цикла на каждой итерации на число, отличное от единицы
Следующий код выведет в консоль все нечетные числа от 1 до 20:
for ( var i = 1; i < 20; i += 2 ) {
console.log ( i )
}Прерывает выполнение текущей итерации цикла
Например, если нужно вывести в консоль только четные числа до 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
Прерывает выполнение цикла
Например, если нужно вывести в консоль числа до 10, то можно сделать так:
for ( var i = 1; ; i++ ) {
if ( i > 10 ) break
console.log ( i )
}Здесь условие на переменную цикла пропущено, что привело бы к бесконечному циклу, если бы мы не поставили прерывание цикла break внутри его тела
Оператор
Цикл
Массив
MDN
Упражнения