【发布时间】:2015-06-06 04:15:12
【问题描述】:
如果这个函数正在运行:
public static void maximizeweight(int[] weight, int[] A){
Random r = new Random();
int random = r.nextInt(A.length);
for(int i=0;i<A.length;i++){
while(totalweight(weight,A) < 630){
if(A[random]==0)
A[random] += 1;
}
}
}
输出有时会稍微中断或冻结 eclipse,完全随机,有时它能够给出整个结果,有时它不显示所需结果的最后部分。
【问题讨论】:
-
totalweight(...)是做什么的?你真的应该先用调试器做一些调试。 -
很可能是由于方法内部存在无限循环。请显示整个班级,或 totalweight 方法。谢谢!
-
显然死循环是可能的
-
如果 A[random] != 0 and totalweight
-
将
while循环移到 for 循环之外;)