使 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;
}
}
将当前计数存储在类的成员变量中,并使用该计数在循环中重新初始化计数器。
//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;
}
}