for

Конструкция for используется для повторения блока операторов, заключенных в фигурные скобки. Счетчик приращений обычно используется для приращения и завершения цикла. Оператор for подходит для любых повторяющихся действий и часто используется в сочетании с массивами коллекций данных/выводов.

Заголовок цикла for состоит из трех частей:

for (initialization; condition; increment) {
//операторы, выполняющиеся в цикле
}

Инициализация (Initialization) выполняется самой первой и один раз. Каждый раз в цикле проверяется условие (condition), если оно верно, выполняется блок операторов и приращение (increment), затем условие проверяется вновь. Когда логическое значение условия становится ложным, цикл завершается.

Пример

Затемнение светодиода с использованием ШИМ-вывода int PWMpin = 10; Светодиод последовательно с резистором 470 Ом на вывод номер 10.

void setup() { //настройка не нужна 
} 

void loop() { 
	for (int i=0; i <= 255; i++) { 
		analogWrite(PWMpin, i); 
		delay(10); 
	} 
}

Советы по применению

Цикл for в С гораздо более гибкий, чем циклы for в других языках программирования, например, в Бейсике. Любой из трех или все три элемента заголовка могут быть опущены, хотя точки с запятой обязательны. Также операторы для инициализации, условия и приращения цикла могут быть любым допустимыми в С операторами с независимыми переменными, и использовать любой тип данных С, включая данные с плавающей точкой (floats). Эти необычные для цикла 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);
	}
}