Цикл for в JS
В этой статье вы познакомитесь с циклом for в JavaScript.
В программировании циклы используются для повторения блока кода. Например, чтобы вывести на экран определенное сообщение 100 раз, удобно будет использовать цикл. На самом деле, это всего лишь простой пример — с помощью циклов можно добиться гораздо большего.
Синтаксис
for ([инициализация]; [условие]; [финальное выражение]) {
инструкции;
}
- 1.
инициализация
— выражение или определение переменных. Выполняется только один раз. Обычно используется, чтобы инициализировать счётчик.
2. условие
— выражение, которое оценивается на каждой итерации цикла. Необязательный пункт.
• Если выражение true, цикл выполняется. Если выражение отсутствует, условие считается true.
• Если выражение false, выполняется первое вырежение, следующее за for.
3. финальное выражение
выполняется в конце каждой итерации цикла. Происходит до следующего выполнения условия. Обычно используется для увеличения счётчика.
4. инструкции
выполняются, когда условие
— true.
Блок-схема
Пример 1. Выводим текст на экран 5 раз
const n = 5;
// цикл от i = 1 до i = 5
for (let i = 1; i <= n; i++) {
console.log("Я люблю JavaScript.");
}
Вывод
Я люблю JavaScript.
Я люблю JavaScript.
Я люблю JavaScript.
Я люблю JavaScript.
Я люблю JavaScript.
Как это работает: по шагам
Итерация | Переменные |
Условие |
Что происходит |
1 |
i = 1 |
true | Выводится Я люблю JavaScript . Переменная i увеличивается на 1 — до 2. |
2 |
i = 2 |
true | Выводится Я люблю JavaScript . Переменная i увеличивается на 1 — до 3. |
3 |
i = 3 |
true | Выводится Я люблю JavaScript . Переменная i увеличивается на 1 — до 4. |
4 |
i = 4 |
true | Выводится Я люблю JavaScript . Переменная i увеличивается на 1 — до 5. |
5 |
i = 5 |
true | Выводится Я люблю JavaScript . Переменная i увеличивается на 1 — до 6. |
6 |
i = 6 |
false | Цикл останавливается. |
Пример 2. Выводим на экран числа от 1 до 5
const n = 5;
// цикл от i = 1 до i = 5
// на каждой итерации i увеличивается на 1
for (let i = 1; i <= n; i++) {
console.log(i);
}
Вывод
1
2
3
4
5
Как это работает: по шагам
Итерация | Переменные | Условие i <= n |
Что происходит |
1 |
i = 1 |
true | Выводится 1 . Переменная i увеличивается на 1 — до 2. |
2 |
i = 2 |
true | Выводится 2 . Переменная i увеличивается на 1 — до 3. |
3 |
i = 3 |
true | Выводится 3 . Переменная i увеличивается на 1 — до 4. |
4 |
i = 4 |
true | Выводится 4 . Переменная i увеличивается на 1 — до 5. |
5 |
i = 5 n = 5 |
true | Выводится 5 . Переменная i увеличивается на 1 — до 6. |
6 |
i = 6 |
false | Цикл останавливается. |
Пример 3. Выводим на экран сумму n-первых чисел
let sum = 0;
const n = 100
// цикл от i = 1 до i = n
// на каждой итерации i увеличивается на 1
for (let i = 1; i <= n; i++) {
sum += i; // sum = sum + i
}
console.log("Сумма: ", sum);
Вывод
5050
Как это работает
Изначально значение суммы равно 0. Итерации цикла for выполняются от i = 1 до 100. На каждой итерации i добавляется к сумме и ее значение увеличивается на 1.
Когда i станет равным 101, условие i <= n
(n = 100) будет ложным. Поэтому результатом будет сумма 0 + 1 + 2 + ... + 100. Это 5050.
Другой вариант
Задачу вычисления суммы n-первых чисел можно реализовать и другим способом. Перебирать значения i можно с конца и на каждой итерации уменьшать i на 1, пока не дойдём до 1.
let sum = 0;
const n = 100;
// цикл от i = n до i = 1
// на каждой итерации i уменьшается на 1
for(let i = n; i >= 1; i-- ) {
sum += i; // sum = sum + i
}
console.log("Сумма: ",sum);
Вывод — такой же, как и в первом варианте: 5050.
Результаты действительно совпадают. Но этот вариант — хуже, потому что он менее читабельный и понятный. Естественнее идти от 1 до n, складывая их.
Вы часто будете сталкиваться с задачами, которые можно решить несколькими способами. Ваша цель — определить наиболее оптимальный.
Бесконечный цикл for
Если условие в цикле for всегда true, цикл будет работать вечно. Вернее, пока не заполнится память. Такой цикл называется бесконечным.
// бесконечный цикл for
for(let i = 1; i > 0; i++) {
// инструкции
}
В этом примере условие всегда истинно, поскольку i всегда положительно — мы начинаем от 1 и прибавляем единицу на каждой итерации.