猿问

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

我有 4 个方向,ID 为1234。(北东南西)

如果我想左转,我会得到电流Id和负 1。我想我已经找到了这个算法。

int currentDirection = 1;
currentDirection = (currentDirection - 1) % 4 + 4;

如果当前方向为 1(北)并且我想向左(负)移动,我会得到以下结果:

Result: 4

所以它正在发挥作用。适用于所有方向。但当我想向右(加)时,我不知道如何获得正确的结果。我已经尝试过这段代码。如果当前方向是12或 ,则有效43但当当前方向为(南)时,它不起作用

int currentDirection = 3;
currentDirection = (currentDirection + 1) % 4;

会出现这样的结果。

Result: 0


慕的地8271018
浏览 99回答 2
2回答

繁华开满天机

右转:currentDirection = currentDirection % 4 + 1左转:currentDirection = (currentDirection+2) % 4 + 1

拉丁的传说

简单来说就是这样:currentDirection = (currentDirection % 4) + 1;更新:我会按如下方式实现它,因为我个人发现它更具可读性:右转:nextDirection = (currentDirection == 4) ? 1 : (currentDirection + 1);左转:nextDirection = (currentDirection == 1) ? 4 : (currentDirection - 1);
随时随地看视频慕课网APP

相关分类

Java
我要回答