Многие программисты часто путаются или не помнят того, как устроен цикл for в языке Си/Си++.
Здесь написано, как точно устроен цикл for и в какие моменты выполняются его части.
Цикл for можно условно написать так:
for([Инициализация]; [Условие]; [Изменение значений])
{
[Тело цикла];
}
Блок Инициализация выполняется один раз перед запуском всего цикла. Никаких условий перед инициализацией не проверяется.
Блок Условие выполняется каждый раз перед выполнением Тела цикла. Это означает, что даже перед первой итерацией сначала обязательно будет произведена проверка условия. Таким образом, цикл for - это, по факту, цикл с предусловием.
Блок Изменение значений выполняется так, как будто он написан перед закрывающей цикл фигурной скобкой "}". В блоке Изменение значений может находиться только одно выражение, однако с помощью операции запятая можно написать несколько выражений.
Блоки Инициализация, Условие, Изменение значений могут быть опущены, то есть могут быть пустыми. Главное, чтобы в круглых скобках всегда оставалось два символа точка-с-запятой ";", так как это требование к синтаксису написания цикла for.