我们说我有4个项目。
当我访问第一个索引时,我还想访问偏移量-1(在这种情况下,它会循环到3)
for(int i = 0; i < array.Length; i++)
{
int item = array[i];
int offset = 0;
if (i == 0)
{
offset = array.Length -1;
}
else
{
offset = i -1;
}
int offsetItem = array[offset];
}
有更优雅的方法来实现这一目标吗?我一直在考虑使用模运算符,但我不太了解它是否足以知道它是否是解决方案。
答案 0 :(得分:2)
你不能在循环中定义变量i,因为我已经定义了它。
for(int i = 0; i < array.Length; i++) {
int j = array[i];
int offset = (j == 0)?(array.Length -1):( i -1);
int offsetItem = array[offset];
}
答案 1 :(得分:1)
是的,有。将数组的长度添加到索引中,并使用余数运算符,如下所示:
int offset = (i-1+array.Length) % array.Length;