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

本文关键字:迭代 计数 For 循环 | 更新日期: 2023-09-27 18:35:52

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

我下面的代码数到 5 然后停止。这不是我想要循环做的事情。循环应该记住它之前留下的数字,然后从那里计数,下面是一个示例。

对于循环 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;
            }                         
        }

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

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

//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 的倍数时,它的计算结果才会为 true,因为 % 计算整数除法的余数。

您需要

将变量转换为私有成员

int i = 0;

那么你的代码将是:

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

不要忘记添加逻辑来"重置"变量 i,我建议使用更好的名称

您可以使用另一个变量:

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;
    }                         
}