我正在使用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;
}
}
答案 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;
}
}