Добавлен Devion,
не публикуется
Перебор значений с захлыстом - приём, заключающийся во взятии следующего/предыдущего индекса в массиве циклично.
Применение
При условии что предыдущий/следующий индекс может лежать вне границ массива, в этом случае мы должны взять элемент "с другого конца массива".
Если захлыст положительный, то легко определить следующий элемент через остаток от деления на длину массива:
for (int i = 0; i < items.Length; i++)
{
var a = items[i];
var b = items[(i+1)%items.Length];
}
Если используется отрицательный захлыст то удобнее вынести код в функцию, так как отрицательные значения считаются чуть менее тривиально:
count - (-value) % count
Часто применяется для:
- перебора ребер фигуры
- перебора углов фигуры
Код
/// <summary>
/// Возвращает цикличное значение в диапозоне
/// </summary>
public static int cyclic(int value, int count)
{
if (value < 0)
return count - (-value) % count;
return value % count;
}
Комментарии пока отсутcтвуют.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.