I’ll use JavaScript syntax and provide a JS fiddle POC, but this really applies to almost any language – at least any that use indexed arrays (all that I can think of).

To get an index greater than length to “wrap” back from the beginning, use a simple modulus:

To get a negative index to wrap from the end, it’s similar:

Both maintain the “step”, so if you use index = 987687, or in a loop index -= 3, it’ll keep the appropriate position.

POC: http://jsfiddle.net/moagrius/v64xN/