为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地8271018 2023-08-16 15:55:32
我有 4 个方向,ID 为1, 2, 3, 4。(北东南西)如果我想左转,我会得到电流Id和负 1。我想我已经找到了这个算法。int currentDirection = 1; currentDirection = (currentDirection - 1) % 4 + 4;如果当前方向为 1(北)并且我想向左(负)移动,我会得到以下结果:Result: 4所以它正在发挥作用。适用于所有方向。但当我想向右(加)时,我不知道如何获得正确的结果。我已经尝试过这段代码。如果当前方向是1、2或 ,则有效4。3但当当前方向为(南)时,它不起作用int currentDirection = 3; currentDirection = (currentDirection + 1) % 4;会出现这样的结果。Result: 0
查看完整描述

2 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

右转:currentDirection = currentDirection % 4 + 1

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


查看完整回答
反对 回复 2023-08-16
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

简单来说就是这样:currentDirection = (currentDirection % 4) + 1;

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

右转:

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

左转:

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


查看完整回答
反对 回复 2023-08-16
  • 2 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信