Modulo Operator (%)

Calculates the remainder when one integer is divided by another. It is useful for keeping a variable within a particular range (e.g. the size of an array).

Syntax

dividend % divisor

Parameters

dividend: the number to be divided

divisor: the number to divide by

Returns

The remainder of dividend/divisor.

Examples

int x;
x = 7 % 5;   // x now contains 2
x = 9 % 5;   // x now contains 4
x = 5 % 5;   // x now contains 0
x = 4 % 5;   // x now contains 4
/* update one value in an array each time through a loop */

int values[10];
int i = 0;

void setup() {
    // no setup necessary
}

void loop() {
  values[i] = analogRead(0);
  i = (i + 1) % 10;   // modulo operator makes sure i stays between 0 and 9
}

Tip

The modulo operator does not work on floats. For that, you can use the C standard library function fmod().

See Also

License and Attribution

Portions of this page were adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.