Типичное использование mod
для генерации значений в фиксированном диапазоне. В этом случае вам нужны значения от 0 до strlen("abc")-1
, чтобы вы не могли получить доступ к позиции за пределами "abc"
.
Общая концепция, которую вам нужно иметь в виду, заключается в том, что x % N
всегда будет возвращать значение от 0
до N-1
. В данном конкретном случае мы также пользуемся тем фактом, что если вы увеличиваете x
на 1 x % N
, то также увеличивается на 1. Видите?
Другим важным свойством модуля, который мы здесь используем, является тот факт, что он «переворачивается». Когда вы увеличиваете x
на 1, x % N
увеличивается на 1. Когда оно достигает N-1
, следующее значение будет 0
и т. Д.
Посмотрите на код @ Дэниела. Это C ++, но концепция не зависит от языка