在C#循环中,中断和继续作为离开循环结构并进入下一次迭代的方法有什么区别?

例子:

foreach (DataRow row in myTable.Rows)
{
    if (someConditionEvalsToTrue)
    {
        break; //what's the difference between this and continue ?
        //continue;
    }
}

当前回答

要完全脱离foreach循环,使用break;

要转到循环中的下一个迭代,请使用continue;

如果您在对象集合(如数据表中的行)中循环,并且正在搜索特定的匹配项,则中断非常有用,当您找到匹配项时,无需继续遍历剩余的行,因此您需要中断。

当您完成了循环迭代中所需的任务时,Continue非常有用。通常情况下,你会在一个if之后继续。

其他回答

break导致程序计数器跳出最内层循环的范围

for(i = 0; i < 10; i++)
{
    if(i == 2)
        break;
}

像这样工作

for(i = 0; i < 10; i++)
{
    if(i == 2)
        goto BREAK;
}
BREAK:;

continue跳转到循环的末尾。在for循环中,continue跳转到增量表达式。

for(i = 0; i < 10; i++)
{
    if(i == 2)
        continue;

    printf("%d", i);
}

像这样工作

for(i = 0; i < 10; i++)
{
    if(i == 2)
        goto CONTINUE;

    printf("%d", i);

    CONTINUE:;
}

若你们不想使用break,你们只需要增加I的值,这样就可以使迭代条件为假,并且循环不会在下一次迭代时执行。

for(int i = 0; i < list.Count; i++){
   if(i == 5)
    i = list.Count;  //it will make "i<list.Count" false and loop will exit
}

打破

中断将强制循环立即退出。

持续

这与break相反。它没有终止循环,而是立即再次循环,跳过其余的代码。

break将完全停止foreach循环,continue将跳到下一个DataRow。

请让我说明一点:请注意,既不添加中断,也不添加继续,将恢复您的程序;也就是说,我被某个错误捕获,然后在记录它之后,我想继续处理,下一行之间还有更多的代码任务,所以我就让它失败了。