18 de mayo de 2012

Contador Circular


Un pequeño homenaje a esta simple línea de código en C

 
            n = ( n + 1 ) % size;

Incrementa n, sumando de uno en uno, hasta que llega a size, donde vuelve a cero. Recorre la variable n  en un rango, circularmente. Por ejemplo: si size = 4, en cada pasada recorrerá los valores 0,1,2,3,0,1,2,3...

El funcionamiento es simple, el operador módulo (%)  da el resto de la división, por tanto mientras (n + 1) < size  la parte entera de la división ( ( n + 1 ) / size  )  es cero y el resto es el mismo número (n + 1), hasta ahí bien, asigna n = (n + 1) , pero cuando (n + 1)  alcanza el valor de size, la división da 1 y el resto cero, por lo tanto se asigna n = 0, recomenzando el ciclo.

Luego de esa calma línea, n pasea dentro de su rango.