Необычное применение цикла for в C++

724 прочитали

Думаю, что даже начинающие программисты знают, что такое цикл for и как его использовать. Но на всякий случай напомню. Синтаксис такой:

for (Инициализация; Условие; Счётчик)
{
Тело цикла;
}

Пожалуй, это одна из немногих фишек языка С++, которая мне ну прям сильно нравится. Здесь мы “в одном флаконе” и переменную инициализируем, и условие определяем, и счётчик циклов запускаем.

Эта конструкция впоследствии перекочевала из С/С++ во многие другие языки, потому что является действительно удачной.

Но ближе к делу. Сначала пример, вдруг кто не знает:

for (int i = 0; i < 3; i++)
{
cout << i << endl;
}

Здесь мы инициализируем переменную i значением 0, определяем условие (цикл будет выполняться, пока i меньше 3), и задаём направление счётчика. Мы не хотим, чтобы цикл превратился в бесконечный, поэтому в каждой итерации цикла увеличиваем значение i на единицу.

Ну а в теле цикла просто выводим на экран текущее значение переменной i.

Также напомню, что переменная i для цикла является локальной, и если вы попробуете использовать её за пределами тела цикла, то компилятор выдаст ошибку.

Разумеется, инициализировать переменную i необязательно нулём, а в качестве счётчика может быть любое допустимое выражение (счётчик можно не только увеличивать, но и умньшать), лишь бы оно изменяло значение i и не делало цикл бесконечным. Пример:

for (int i = 5; i < 10; i = i + 3)

В общем, цикл for в С++ - это достаточно гибкая конструкция, и работать с ней одно удовольствие.

А теперь переходим к необычности. Дело в том, что ни один из параметров цикла for не является обязательным! Это означает, что вы можете использовать этот вид цикла, например, с глобальными счётчиками, а какое-то условие завершения цикла проверять самостоятельно.

Вот пример такого цикла, который по сути является бесконечным, и то, как программа выйдет из этого цикла, зависит исключительно от программиста:

Думаю, что даже начинающие программисты знают, что такое цикл for и как его использовать. Но на всякий случай напомню.

Таким образом можно организовать, например, ввод данных от пользователя в консоли до тех пор, пока он не введёт нужное количество значений либо то значение, которое от него требуется.

Комбинировать параметры цикла (либо их отсутствие) можно как угодно - зависит только от задач и вашего воображения.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.