我在c#winform中有一个 for loop ,如果 i = 7
,我想再次启动循环代码如下所示:
<View style={{borderWidth: 1}}/>
<Text>A DIFFERENT EXPERIENCE</Text>
</View>
任何想法?
另外,我知道这段代码没有意义,我只是写了它的例子 - 我的c#代码中有类似的情况。
答案 0 :(得分:5)
在这种情况下,只需将i
变回0,就像这样:
for (int i = 0; i < 10; i++)
{
if (i==7)
{
MessageBox.Show("you must start for loop again ");
i = 0;
}
}
如果你真的想使用goto
,那么这是一个例子:
BackToTheStart:
for (int i = 0; i < 10; i++)
{
if (i==7)
{
MessageBox.Show("you must start for loop again ");
goto BackToTheStart;
}
}
值得记住的是,如果您还不知道,goto
通常被认为是不良行为,并且从过去的C风格语言中带来了不受欢迎的传统行李。在大多数情况下,您不需要它,就像在此示例中一样,更容易不使用它。而且,最重要的是,没有人会感谢您添加goto
。
答案 1 :(得分:0)
值得注意的是,这将是一个无限循环。想一想:如果你每次i
达到7时回到0,那么i == 10
的情况怎么样?你怎么打破循环?这可能是XY problem的情况 - 也就是说,你可能 想要做你想做的事情。
如果你真的希望在无限循环中发生这种情况,那就这样做:
while (true) {
for (int i = 0; i <= 7; i++) {
if (i == 7) {
// ..
}
}
}
实际上,如果你只是在i = 7
的情况下做某事,那么在这种情况下你为什么要打扰“for”循环,我感到有些困惑。为什么要干扰for循环并将动作置于无限循环中?
此外,如果您在UI线程上执行此操作,它似乎会“挂起”UI,因为除了为for循环提供服务之外,UI线程将无法执行任何操作。用户甚至无法正常关闭它。
最后,正如其他人所指出的那样,从不使用goto
,这是一种不好的做法 - 微软甚至不应该将其包含在语言中。