+= (compound addition)
Оператор += прибавляет значение к переменной и сохраняет результат в ней же: x += y — это краткая запись x = x + y.
Полная статья
Описание
Оператор += — это составной оператор сложения. Он прибавляет правый операнд к левому и сохраняет результат в той же переменной. Запись x += y полностью равнозначна x = x + y, но короче и читается естественнее, особенно когда переменная встречается в длинном выражении.
Оператор работает с целыми и дробными числами: int, long, short, byte, float, double.
Синтаксис
x += y; // equivalent to the expression x = x + y;
Параметры
x: переменная, к которой прибавляется значение. Допустимые типы:int,float,double,byte,short,long.y: прибавляемое значение — переменная или числовая константа. Допустимые типы:int,float,double,byte,short,long.
Пример кода
x = 2;
x += 4; // x теперь равен 6
Где применяется
- Счётчик событий — увеличивать счётчик нажатий кнопки или импульсов датчика на 1 при каждом срабатывании.
- Накопление суммы — суммировать показания АЦП в цикле, чтобы потом усреднить результат.
- Анимация и движение — постепенно смещать позицию объекта на экране или угол сервопривода на фиксированный шаг.
- Таймеры без
delay()— накапливать прошедшее время в переменной внутриloop().
Практические замечания
- Переполнение типа. Если
xобъявлен какbyte(диапазон 0–255) и вы прибавляете значение, которое выводит сумму за 255, переменная «перевернётся» и окажется у нуля. Выбирайте тип с запасом по диапазону. - Смешивание типов. Когда
xиyимеют разные типы, компилятор приводитyк типуxперед записью. Например, еслиx—int, аy—float, дробная часть будет отброшена. Чтобы сохранить точность, объявляйтеxкакfloat. - Отладка через Serial. Если результат выглядит неожиданно, добавьте
Serial.println(x)сразу после+=— так сразу видно, что происходит с переменной на каждой итерации. - Порядок операций.
+=имеет более низкий приоритет, чем арифметические операторы справа. Выражениеx += a * bсначала вычислитa * b, а затем прибавит результат кx— это ожидаемое поведение.