我正在尝试使用表“ charms”比较值,但是我的外部3个循环将仅注册第一次迭代。只有最内层的循环会比较所有值。
while (m < 17) {
while (n < 17) {
while (o < 17) {
while (p < 17) {
number = (Math.pow(w, charms[m]))
* (Math.pow(x, charms[n]))
* (Math.pow(y, charms[o]))
* (Math.pow(z, charms[p]));
if (Math.abs(cons - number) < Math.abs(cons - closest)) {
closest = number;
a = charms[m];
b = charms[n];
c = charms[o];
d = charms[p];
}
p++;
}
o++;
}
n++;
}
m++;
}
最佳答案
首先,您没有显示如何初始化m, n, o and p
。其次,您不会在任何时候重置计数器。一旦您经历了最内层的循环,您就永远不会再经历它,因为p
之后将大于或等于17。然后,一旦o
达到17,您将永远不会再进入该循环,依此类推。