如何根据某些条件每n次递增一个变量?

时间:2012-02-20 14:39:40

标签: c# loops for-loop

我有以下循环:

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

现在我有一个条件:

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

我想做的是:

如果条件为真,那么:

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

0 0 1 1 2 2

如果条件为假,那么:

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

0 0 0 1 1 1 2 2 2

3 个答案:

答案 0 :(得分:3)

听起来你真的想要:

int scale = dt.Rows.Count > 0 ? 2 : 3;

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

可能有更好的方法来解决这个问题,但如果没有关于你想要实现的目标的更多信息,很难知道。

答案 1 :(得分:1)

长版

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

答案 2 :(得分:1)

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