Java当我在代码中运行这个方法时,有时它会显示完整的结果,有时它不会';T
如果此功能正在运行:Java当我在代码中运行这个方法时,有时它会显示完整的结果,有时它不会';T,java,function,console,Java,Function,Console,如果此功能正在运行: 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){
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;
}
}
}
publicstaticvoidmaximizewight(int[]weight,int[]A){
随机r=新随机();
int random=r.nextInt(A.length);
对于(int i=0;i如果您的A[random]!=0
并且您的totalweight()
返回<630,while循环将是无限的。一个可能的修复方法(我认为您需要的)是在while循环中移动int random=r.nextInt(A.length);
public static void maximizeweight(int[] weight, int[] A){
Random r = new Random();
for(int i=0;i<A.length;i++){
while(totalweight(weight,A) < 630){
int random = r.nextInt(A.length);
if(A[random]==0)
A[random] += 1;
}
}
}
publicstaticvoidmaximizewight(int[]weight,int[]A){
随机r=新随机();
对于(int i=0;i什么是totalweight(…)
do?您确实应该首先使用调试器进行一些调试。很可能是由于该方法内部有一个无限循环。请显示整个类或totalweight方法。谢谢!如果[random],显然可能存在死循环!=0和totalweight<630 while循环永远不会结束..我认为这就是问题所在将while
循环移到for循环之外;)