我有一个有四个元素示例的数组:
int[] a = new int[5];
Run Code Online (Sandbox Code Playgroud)
价值如下: a[0] = 10,a[1]=5,a[2]=15,a[3]=10,a[4]=0;
我有旗帜,
public bool[] flag = new bool[4]{false,false,false,false};
Run Code Online (Sandbox Code Playgroud)
基于此我需要将上述值分配给另一个名为的变量b[5].
如果是标志false,它将add是现有的b值,
否则它会重置的值a来b.
我试过以下代码似乎太冗长了
count[0]=20,count[1]=20;count[2]=20;count[3]=20;
flag[0]=true,flag[1]=true,flag[2]=true,flag[3]=false;
void display(int[] count,int[]flag)
{
if (flag[0] == true)
{
resetcount[0] = count[0];
}
if(flag[1]==true)
{
resetcount[1] = count[1];
}
if (flag[2] == true)
{
resetcount[2] = count[2];
}
if(flag[3]==true)
{
resetcount[3] = count[3];
}
if (flag[0] == false)
{
resetcount[0] += count[0];
}
if (flag[1] == false)
{
resetcount[1] += count[1];
}
if (flag[2] == false)
{
resetcount[2] += count[2];
}
if (flag[3] == false)
{
resetcount[3] += count[3];
}
}
Run Code Online (Sandbox Code Playgroud)
这里 resetcount[0]=10,resetcount[1]=10,resetcount[2]=10,resetcount[3]=10;
如果所有标志都为假,则计数值将被添加,如果为真,则计数值将被设置为重置计数,如上所述,它将为0,1,2
count[0]=20,count[1]=20;count[2]=20;count[3]=20;
flag[0]=true,flag[1]=true,flag[2]=true,flag[3]=false;
resetcount[0]=10,resetcount[1]=10,resetcount[2]=10,resetcount[3]=10;
Run Code Online (Sandbox Code Playgroud)
所以现在resetcount将是:
resetcount[0]=20,resetcount[1]=20,resetcount[2]=20,resetcount[3]=30;
Run Code Online (Sandbox Code Playgroud)
像一个循环?
count[0]=20,count[1]=20;count[2]=20;count[3]=20;
flag[0]=true,flag[1]=true,flag[2]=true,flag[3]=false;
void display(int[] count,int[]flag)
{
for (int i = 0 ; i<=3 ; i++)
{
if (flag[i])
{
resetcount[i] = count[i];
}
else
{
resetcount[i] += count[i];
}
Run Code Online (Sandbox Code Playgroud)
}