我正在用java工作,遇到了我的同学写的一段奇怪的代码,我确信模数运算符可以工作,但由于某种原因,我没有得到我认为可以从运算符那里得到的预期结果。
现在代码编写如下:
long divisionID = myMaxId % 40;
if (divisionID == 0) {
divisionID = 1;
}
long empiresubID = 1;
if (myMaxId >= 1600) {
empiresubID = 2;
}
if (myMaxId >= (1600 * 2)) {
empiresubID = 3;
}
if (myMaxId >= (1600 * 3)) {
empiresubID = 4;
}
if (myMaxId >= (1600 * 4)) {
empiresubID = 5;
}
if (myMaxId >= (1600 * 5)) {
empiresubID = 6;
}
其他一些地方的情况也是如此,并且会上升到 1600*40。
我认为对 myMaxId %1600 使用模运算符,但这给了我错误的结果。
最终目标是有 40 个分区,我们首先在用户注册时使用 myMaxID % 40 为所有分区填充子分区 1。
完成后,分割将翻转为 2,然后我们将所有分割填充为分割 2。
我认为当前的编程方式效率不高,应该有其他方法来做到这一点。
对此的任何想法或帮助都会很棒。
最佳答案
我认为你可以通过替换来摆脱 if
链
long empiresubID = (myMaxId / 1600) + 1;
关于java - java中需要逻辑清理帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14227966/