繁体   English   中英

在 Java 中循环未正确执行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM