如何每n个变量递增一次,根据某个条件进行迭代

本文关键字:迭代 一次 条件 变量 何每 | 更新日期: 2023-09-27 18:25:22

我有以下循环:

for (int i = 0; i < Main_dt.Rows.Count; i++)
{
}

现在我有一个条件:

 if (dt.Rows.Count > 0)
  {
  }

我想做的是:

如果条件成立,则:

two iterates将变量j增加1,我的意思是:

0 0 1 1 2 2

如果条件为假,则:

three iterates将变量j增加1,我的意思是:

0 0 0 1 1 1 2 2 2

如何每n个变量递增一次,根据某个条件进行迭代

听起来你真的想要:

int scale = dt.Rows.Count > 0 ? 2 : 3;
for (int i = 0; i < Main_dt.Rows.Count; i++)
{
    int j = i / scale;
    ...
}

很可能有更好的方法来实现这一点,但如果没有更多关于你试图实现什么的信息,很难知道。

长版本

if (dt.Rows.Count > 0)
{
  if (i>0 && i%2 == 0)
     j++;
}
else
{
  if (i>0 && i%3 == 0)
     j++;
}

一个衬垫(不推荐,因为它需要一些时间来摸索)

j += ( i>0 && i % (dt.Rows.Count > 0 ? 2 : 3) == 0) ? 1 : 0
int j = -1;
for (int i = 0; i < Main_dt.Rows.Count; i++) 
{
      j+= i% (dt.Rows.Count>0 ? 2 : 3) == 0 ? 1 : 0;
}