[英]While loop not executing properly in Java
这是我的代码的主要部分,其中“while”循环:
while(ind1<n1.length && ind2<n2.length)
{
if(ncm!=null)
{
if(n1[ind1]<ncm)
{
s1=s1+n1[ind1];
ind1++;
}
else if(n2[ind2]<ncm)
{
s2=s2+n2[ind2];
ind2++;
}
else if(n2[ind2]==ncm && n1[ind1]==ncm)
{
s2=s2+n2[ind2];
s1=s1+n1[ind1];
if(s1>s2)
s2=s1;
else if(s2>s1)
s1=s2;
ind1++;
ind2++;
ncm=q.poll();
}
}
else
{
s1=s1+n1[ind1];
ind1++;
s2=s2+n2[ind2];
ind2++;
}
System.out.println("ind1 "+ind1+" ind2 "+ind2);
System.out.println("s1 "+s1+" s2 "+s2);
}
我正在传递这两个 arrays: int n1[]= {1,2,3,4}; 诠释 n2[]= {10,11};
我观察到哪个数组具有最小元素,循环终止到最小数组的最后一个索引,而我希望它可以继续直到它到达数组的最后一个元素。 这个条件还不够吗? “而(ind1<n1.length && ind2<n2.length) ”
不,这个条件
while(ind1<n1.length && ind2<n2.length)
这意味着如果其中一个比较结果为假,则 while 循环将结束。 当它到达最短数组的最后一个元素时,就会发生这种情况。 相反,如果你想继续直到它到达最长数组的最后一个元素,它应该是:
while(ind1<n1.length || ind2<n2.length)
如果你想到达 arrays 的末尾,你应该添加条件 OR 而不是 AND:
while(ind1<n1.length || ind2<n2.length)
<=(小于等于)怎么样
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.