JavaScript: Цикл For
Цикл while
идеален для ситуаций, когда количество итераций неизвестно заранее, например, при поиске простого числа. Когда количество итераций известно, предпочтительнее использовать цикл for
.
Посмотрим реализацию переворота строки через цикл for
:
const reverseString = (str) => {
let result = '';
for (let i = 0; i < str.length; i += 1) {
result = `${str[i]}${result}`;
}
return result;
};
Можно читать так: цикл с индексом i
повторяется пока i < str.length
и после каждого шага увеличивает i
на 1.
В определении цикла for
есть:
- Начальное значение счётчика. Этот код выполняется ровно один раз перед первой итерацией.
- Предикат-условие повторения циклов. Выполняется на каждой итерации. Точно так же как и в
while
- Описание изменения счётчика. Этот код выполняется в конце каждой итерации.
В остальном принцип работы точно такой же, как у цикла while
.
Задание
Сэмвелл обнаружил, что его сообщения перехватываются в замке «Близнецы» и там читаются. Из-за этого их атаки перестали быть внезапными. Немного подумав, он разработал программу, которая бы шифровала сообщения по следующему алгоритму. Она бы брала текст и переставляла в нем каждые два подряд идущих символа.
encrypt('attack'); // 'taatkc'
// Если число символов нечётное
// то последний символ остается на своем месте
encrypt('go!'); // 'og!'
Реализуйте функцию encrypt()
, которая принимает на вход исходное сообщение и возвращает зашифрованное.
Подумайте. Может ли эта функция расшифровать зашифрованное сообщение?