使循环停止计数每5次迭代C#

时间:2016-02-23 21:56:48

标签: c# .net winforms loops for-loop

我正在使用WinForms。在我的表格中,我有一个按钮。每按一下按钮,程序就会计算数字。我正在使用for循环来计算1-500之间的数字。如何让我的for循环每5次计数停止?

以下我的代码计为5然后停止。这不是我想要的循环。循环应该记住它之前剩下的数字,然后从那里算起,下面是一个例子。

For Couting示例: 点击:1 2 3 4 5 (停止) 您再次点击该按钮:6 7 8 9 10 (停止) 您再次点击按钮:11 12 13 14 15 ...等

        for(int i = 0; i <= 500 ; i++)
        {
            Debug.Print("Value of i: " + i.ToString());               
            if(i == 5)
            {
                break;
            }                         
        }

3 个答案:

答案 0 :(得分:3)

将当前计数存储在类的成员变量中,并使用该变量重新初始化循环中的计数器。

//In your class a private member:
private int masterCounter = 1;

//In your function  
for(int i = (masterCounter >= 500 ? 1 : masterCounter); i <= 500 ; i++)
{
    Debug.Print("Value of i: " + i.ToString());               
    if(i % 5 == 0)
    {
        masterCounter = i + 1;
        break;
    }                         
}

一旦您点击500并再次单击该按钮,上面的代码将重置为1。因此,您可以在500处重新启动它。(masterCounter >= 500 ? 1 : masterCounter)的部分执行此操作,因为如果masterCounter大于或等于500,则返回1,否则它将被指定为起始值的当前计数到i

另一个有趣的部分是if(i % 5 == 0),只有当i是5的倍数时它才会被评估为真,因为%计算整数除法的余数。

答案 1 :(得分:0)

您需要将变量转换为私有成员

- (void)didSimulatePhysics {
  if (node.physicsBody.velocity.x < MAX_SPEED_X) {
  node.physicsBody.velocity = CGVectorMake(MAX_SPEED_X, MAX_SPEED_Y);
 }
}

然后您的代码将是:

int i = 0;
不要忘记添加逻辑以重置&#39;变量我和我会建议使用更好的名称

答案 2 :(得分:0)

您可以使用另一个变量:

private int num = 0; 
//Set this at the top of the class, not in the same function as the loop

然后在每次单击按钮时使用它来记住:

for(int i = num; i <= 500 ; i++)
{
    Debug.Print("Value of i: " + i.ToString());           
    if(i == num+5)
    {
        num+=5;
        break;
    }                         
}