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

例子:

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

当前回答

何时使用中断与继续?

分手-我们将永远离开循环,永远分手。再见。

继续-意味着你今天要休息一下,明天再把它整理好(即跳过当前迭代)!

(Corny故事)\(ツ)/“”和图片,但希望能帮助你记住。

抓握提醒:不知道为什么要使用这些词。如果您想跳过迭代,为什么不使用skip而不是continue?如果给出了正确的名称,整个堆栈溢出问题和1000名开发人员不会感到困惑。)

其他回答

简单答案:

Break立即退出循环。继续开始处理下一项。(如果有,跳转到for/while的评估行)

所有人都给出了很好的解释。我仍然在发布我的答案,只是想举个例子,如果这有帮助的话。

// break statement
for (int i = 0; i < 5; i++) {
    if (i == 3) {
        break; // It will force to come out from the loop
    }

    lblDisplay.Text = lblDisplay.Text + i + "[Printed] ";
}

以下是输出:

0[打印]1[打印]2[打印]

因此,当i==3时,3[打印]和4[打印]将不会显示,因为有中断

//continue statement
for (int i = 0; i < 5; i++) {
    if (i == 3) {
        continue; // It will take the control to start point of loop
    }

    lblDisplay.Text = lblDisplay.Text + i + "[Printed] ";
}

以下是输出:

0[打印]1[打印]2[打印]4[打印]

因此,当i==3时,不会显示3[已打印],因为会继续

要理解这一点,一个非常简单的方法是在每个关键字后面加上单词“loop”。如果这些术语只是像日常用语一样阅读,那么它们现在就有意义了。

中断循环-循环中断并停止。

continue循环-循环继续执行下一次迭代。

举个例子

foreach(var i in Enumerable.Range(1,3))
{
    Console.WriteLine(i);
}

打印1、2、3(在单独的行上)。

在i=2时添加中断条件

foreach(var i in Enumerable.Range(1,3))
{
    if (i == 2)
        break;

    Console.WriteLine(i);
}

现在循环打印1并停止。

用continue替换中断。

foreach(var i in Enumerable.Range(1,3))
{
    if (i == 2)
        continue;

    Console.WriteLine(i);
}

现在循环打印1和3(跳过2)。

因此,break会停止循环,而continue会跳到下一次迭代。

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