Java-当您将一项添加到列表中的最大值时,如何转到第一项?

Java-当您将一项添加到列表中的最大值时,如何转到第一项?,java,Java,我有4个方向,ID分别为1,2,3,4。(北、东、南、西) 如果我想左转,我会得到当前的Id和-1。我想我找到了这个的算法 int currentDirection = 1; currentDirection = (currentDirection - 1) % 4 + 4; 如果当前方向是1(北),我想向左(负),我得到这个结果: Result: 4 所以它起作用了。全方位合作。但我不知道当我想去右边(加号)时如何得到正确的结果。我试过这个代码。如果当前方向为1、2或4,则该功能有效。但当

我有4个方向,ID分别为
1
2
3
4
。(北、东、南、西)

如果我想左转,我会得到当前的
Id
和-1。我想我找到了这个的算法

int currentDirection = 1;
currentDirection = (currentDirection - 1) % 4 + 4;
如果当前方向是1(北),我想向左(负),我得到这个结果:

Result: 4
所以它起作用了。全方位合作。但我不知道当我想去右边(加号)时如何得到正确的结果。我试过这个代码。如果当前方向为
1
2
4
,则该功能有效。但当当前方向为
3
(南)时,它不起作用

结果会是这样

Result: 0

简单地说:
currentDirection=(currentDirection%4)+1

更新:
我将按如下方式实现它,因为我个人认为它更具可读性:

右转:

nextDirection = (currentDirection == 4) ? 1 : (currentDirection + 1);
左转:

nextDirection = (currentDirection == 1) ? 4 : (currentDirection - 1);

右转:
currentDirection=currentDirection%4+1


左转:
currentDirection=(currentDirection+2)%4+1
currentDirection=currentDirection%4+1
这就是你要找的吗?你确定你的左转算法适用于所有方向吗?谢谢@J.Z,它正在工作。你先回答。如果你写一个答案,我会接受的。否则我会接受第一个答案。@AndrewTobilko你是对的。现在不行了。我想我在右转时改变了密码(你能加上左转吗?我现在也需要:)谢谢你的回答。它确实更具可读性,做得更好,我投了更高的票,但我需要接受@J.Z的答案。很抱歉
nextDirection = (currentDirection == 1) ? 4 : (currentDirection - 1);