for
Описание
Оператор for используется для повторения блока инструкций, заключённого в фигурные скобки. Обычно используется счётчик-инкремент для увеличения значения и завершения цикла. Оператор for полезен для любой повторяющейся операции и часто применяется в сочетании с массивами для работы с наборами данных или пинов.
Синтаксис
for (initialization; condition; increment) {
// statement(s);
}
Параметры
initialization: происходит первой и ровно один раз.condition: при каждом проходе цикла проверяетсяcondition; если оно равно true, выполняется блок инструкций и increment, после чего condition проверяется снова. Когда condition становится false, цикл завершается.increment: выполняется при каждом проходе цикла, когдаconditionравно true.
Пример кода
// Плавно увеличиваем яркость светодиода через PWM-пин
int PWMpin = 10; // Светодиод последовательно с резистором 470 Ом от пина 10 на землю
void setup() {
// настройка не требуется
}
void loop() {
for (int i = 0; i <= 255; i++) {
analogWrite(PWMpin, i);
delay(10);
}
}
Примечания и предупреждения
Цикл for в C++ намного гибче, чем циклы for в некоторых других языках программирования, включая BASIC. Любой или все три элемента заголовка могут быть опущены, хотя точки с запятой обязательны. Также инструкции для инициализации, условия и инкремента могут быть любыми допустимыми инструкциями C++ с независимыми переменными и использовать любые типы данных C++, включая числа с плавающей точкой. Такие необычные операторы for могут давать решения некоторых редких задач программирования.
Например, использование умножения в строке инкремента создаст логарифмическую прогрессию:
for (int x = 2; x < 100; x = x * 1.5) {
println(x);
}
Сгенерирует: 2,3,4,6,9,13,19,28,42,63,94
Другой пример — плавное увеличение и уменьшение яркости светодиода с помощью одного цикла for:
void loop() {
int x = 1;
for (int i = 0; i > -1; i = i + x) {
analogWrite(PWMpin, i);
if (i == 255) {
x = -1; // меняем направление на пике
}
delay(10);
}
}