我构建了这个代码,以队列方式显示数组的所有条目.问题是,我被告知这可以在没有for声明的情况下完成,将内容倒i回到0,但我无法弄清楚如何.
怎么可以做到这一点?
public void display()
{
int i = frontIndex;
while(true)
{
if (i == numberOfItems)
i = 0;
System.out.print(array[i++] + " ");
if (i == rearIndex + 1)
break;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用%操作员并打印i % numberOfItems:
它没有经过测试,但它应该是这样的:
for (int i = frontIndex; i % numberOfItems != rearIndex+1; i++) {
System.out.print(array[(i++) % numberOfItems)] + " ");
}
Run Code Online (Sandbox Code Playgroud)
这个想法是(array.length + k) % array.length == k,所以使用%运算符实际上相当于将索引重置i为0.
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |