Um uso bem comum (similar ao seu exemplo) é de percorrer um array de maneira circular (ou, no caso mais geral, quando você precisa "voltar ao início" caso ultrapasse o final de uma sequência):
var i = 6;
var array = [ 0, 1, 2, 3, 4, 5, 6, 7 ];
// avança 4 posições
i = (i + 4) % array.length;
console.log(array[i]); // 2
No exemplo acima, a posição atual é 6
. Eu preciso avançar 4, mas se eu só somar 4
, vou cair na posição 10, que não existe no array. Então o %
faz com que eu "volte ao início". É como se, ao chegar na última posição, eu continuasse a contagem a partir da primeira.
E tem vários outros usos similares, quando vc precisa voltar ao início da sequência, caso ultrapasse o fim da mesma (a Cifra de César é um exemplo clássico).
Vale lembrar ainda que o operador %
não se comporta da mesma maneira em todas as linguagens, quando há números negativos envolvidos. Por exemplo, -4 % 26
pode dar 22
ou -4
, dependendo da linguagem (ou seja, se usarmos o mesmo algoritmo acima, mas para voltar posições, pode ou não funcionar). Mas aí já é outra história...