Java 使用另一个数组中的条件添加1个数组中的数字 int[]material={62556255503}; int-sumQuan=0; int[]数量={6,5,1}; 字符串[]计算={“1”、“1”、“0”}; int len=材料长度; INTA=材料[0]; 对于(int i=0;i

Java 使用另一个数组中的条件添加1个数组中的数字 int[]material={62556255503}; int-sumQuan=0; int[]数量={6,5,1}; 字符串[]计算={“1”、“1”、“0”}; int len=材料长度; INTA=材料[0]; 对于(int i=0;i,java,arrays,Java,Arrays,我想返回11,0,但它返回6,11,0。对于每次迭代,必须在循环的开始/结束时将sumQuan初始化为0。此外,假设数组已排序,则必须不断增加索引,并且只要该项等于上一项,就不能重置总和。像这样: int[] material = {6255,6255,5003}; int sumQuan = 0; int []quantity = {6,5,1}; String []calc = {"1","1","0"}; int len = material.length; int a = materia

我想返回11,0,但它返回6,11,0。

对于每次迭代,必须在循环的开始/结束时将
sumQuan
初始化为
0
。此外,假设数组已排序,则必须不断增加索引,并且只要该项等于上一项,就不能重置总和。像这样:

int[] material = {6255,6255,5003};
int sumQuan = 0;
int []quantity = {6,5,1};
String []calc = {"1","1","0"};
int len = material.length;
int a = material[0];  

for(int i = 0; i < len; i++)
{
    if(a==material[i] && calc[i]=="1")
    {
        sumQuan = sumQuan+quantity[i];                                                       
    }                             
    else if(calc[i]=="0"){
        sumQuan = 0;
    }
    else
    {
        sumQuan = quantity[i];
    }
    System.out.println(sumQuan);
}
sumQuan=0;
对于(int i=0;i
这样,当您在
材料中具有相同的值时,您将继续添加到总和中


如果只想稍微更改代码,可以将print语句保留在
(a==material[i])
条件的
else
分支中。只有当项目不等于第一个项目时,它才会输出。

NOOOOOOO。。。不是
=
而是
再次等于
:___(
sumQuan = 0;
for(int i = 0; i < len; i++)
{
    if(calc[i].equals("1"))
    {
        sumQuan = sumQuan+quantity[i];                                                       
    }                             
    // we don't need to do anything if it's "0"
    if ((i < material.length-1 && material[i+1] != material[i])
         || (i == material.length-1)) {
        System.out.println(sumQuan);
        sumQuan = 0;
    }

}