Resto de divisão

Quando quero restringir um contador até um valor máximo, utilizo o operador ‘resto de divisão’. Digamos que eu tenha uma sequência de números (por exemplo, entre 0 e 29) e que eu precise somente dos valores entre 0 e 3:


Seq 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Seq % 4 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3

E quando isso é útil? Por exemplo, se você tiver um vetor com os caracteres “/-\|” e queira fazer uma ‘estrela de progresso’, pra indicar que está processando (em C):

void progresso(void) {
  static char* caracteres = "/-\\|";
  static size_t n_caracteres = strlen(caracteres);
  static int i = 0;
  printf("%c\b", caracteres[i]);
  i = (i+1) % n_caracteres;
}

Desta forma garantimos que o valor de “i” estará sempre entre zero e o tamanho do vetor de caracteres.

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>