我不明白为什么我的代码中有无限循环。 一旦我输入输入数组,就会发生错误,并且控制台不会停止接受输入。有人可以帮忙吗? 这是可能有问题的代码:
public static triplet<Integer,Integer,Integer> maxsum(int[] input)
{
triplet<Integer,Integer,Integer> ans=new triplet<Integer, Integer, Integer>(0,0,0);
int l=input.length;
int maxSum=0;
int i=0;
while(i<input.length);
{
System.out.println("input taken");
int j=i;
int sum=0;
if(input[i]>=0)
{
while(j>=0&&j<l)
{
sum=sum+input[j];
}
if(sum>maxSum)
{
ans.c=sum;
ans.b=j;
ans.a=i;
}
i=j+1;
}
else
i++;
}
return ans;
}
最佳答案
没有什么可以阻止你的内部循环。
也许你应该改变
while(j >= 0 && j < l)
{
sum = sum + input[j];
}
至
while(input[j] >= 0 && j < l)
{
sum = sum + input[j];
j++;
}
和
if(sum>maxSum)
{
ans.c=sum;
ans.b=j;
ans.a=i;
}
至
if(sum>maxSum)
{
ans.c=sum;
ans.b=j;
ans.a=i;
maxSum=sum;
}
关于java - 我的求和代码中的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37829248/