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

如果在java中超出数组索引,如何跳转到数组的0索引?

如果在java中超出数组索引,如何跳转到数组的0索引?

慕斯王 2021-10-06 10:12:52
假设我有一个 65-90 范围内的 int 数组。我将随机选择一个元素并添加 10。如果 90 的交叉范围返回到 65,该值是否可能?例如 - 我取一个 85 并加 10。所以应该是 95,但我想要 70。
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

您可以[0, high - low]通过删除low您的值将您的值放入间隔中,然后将您想要的数字添加到它,取总和的模数,最后加low回来回到范围内[low, high]


public static void main(String[] args) {

    int low = 65, high = 90;

    System.out.println(addWithinInterval(85, 10, low, high));

}


private static int addWithinInterval(int value, int add, int low, int high) {

    return (value - low + add) % (high - low + 1) + low;

}


查看完整回答
反对 回复 2021-10-06
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

我将随机选择一个元素并添加 10。如果 90 的交叉范围返回到 65,该值是否可能?


当然,余数运算符会为您做到这一点:


n = (n - 65) % (90 - 65) + 65;

示例(实时复制):


int n = 85;

for (int x = 0; x < 10; ++x) {

    n += 10;

    n = (n - 65) % (90 - 65) + 65;

    System.out.println(n);

}

或在现场:Java 和 JavaScript 不同,但它们的%运算符工作相同,因此:

let n = 85;

for (let x = 0; x < 10; ++x) {

  n += 10;

  n = (n - 65) % (90 - 65) + 65;

  console.log(n);

}


查看完整回答
反对 回复 2021-10-06
  • 2 回答
  • 0 关注
  • 139 浏览

添加回答

举报

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