gpt4 book ai didi

java - 递增时如何获得数组 'roll over' 的索引?

转载 作者:搜寻专家 更新时间:2023-10-31 08:11:25 24 4
gpt4 key购买 nike

所以我有一个长度为 4 的数组。当我将它递增 1 并且数字变得大于数组的长度时,我希望它翻转。

例如:

current_index = 3;
current_index++;
//current_index is now 0 again

current_index = 3;
current_index += 2;
//current_index would be 1

current_index = 0;
current_index--;
//current_index would be 3

我目前正在用 if-else 解决这个问题

if (current_index == textviewlist.length + 1)
current_index = 0;
else if (current_index == textviewlist.length + 2)
current_index = 1;
else if (current_index == -1)
current_index = 3;

但我觉得这不是一个合适的解决方案,也不是“好的”代码。

编辑:我尝试了你的建议,但显然 java 对负数的行为很奇怪。当我尝试

current_index = (current_index - 1) % textviewlist.length;

Java 获取索引“0”,将其减 1(“-1”),然后

 -1 % 4 = -1

我预计它是 3,请参阅 Wolfram Alpha: -1 mod 4但显然 java % 运算符与模运算符不同?

编辑 2:我在这里找到了解决方案:Best way to make Java's modulus behave like it should with negative numbers? - Stack Overflow

我可以做到:

current_index -= 1;
current_index = (current_index % textviewlist.length + textviewlist.length) % textviewlist.length;

最佳答案

您可以使用模运算符。

current_index = (current_index + n) % 4;

关于java - 递增时如何获得数组 'roll over' 的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6826826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com