我有一个数组,我想向后滚动它的位置。向后滚动圆形阵列
我有一个布尔数组,我需要计算从给定单元格向前和向后有多少个真值。
我知道如果N是数组中元素的数量,我可以继续做i =(i + 1)%N。 但是如果我需要以相反的方式滚动它呢?
预先感谢您。
我有一个数组,我想向后滚动它的位置。向后滚动圆形阵列
我有一个布尔数组,我需要计算从给定单元格向前和向后有多少个真值。
我知道如果N是数组中元素的数量,我可以继续做i =(i + 1)%N。 但是如果我需要以相反的方式滚动它呢?
预先感谢您。
这应做到:
i--;
if (i == -1)
i = N-1;
或在1线:
i = ((i-1 == -1) ? N-1 : i-1);
但上述噪音的变化可能是更好的。 一个相关的if语句版本:
if (i == 0)
i = N-1;
else
i--;
一个相关的1行版本:
i = (i == 0 ? N-1 : i-1)
如何i = (i == 0 ? N : i) - 1
?
我通常使用i = (i - 1 + N) % N
来防止负值。
减1而不是加1 ... – beny23 2013-03-17 15:51:18
如果i = 0,则(i-1)%N结果为-1 – 2013-03-17 15:53:08