在C#循环中,中断和继续作为离开循环结构并进入下一次迭代的方法有什么区别?
例子:
foreach (DataRow row in myTable.Rows)
{
if (someConditionEvalsToTrue)
{
break; //what's the difference between this and continue ?
//continue;
}
}
在C#循环中,中断和继续作为离开循环结构并进入下一次迭代的方法有什么区别?
例子:
foreach (DataRow row in myTable.Rows)
{
if (someConditionEvalsToTrue)
{
break; //what's the difference between this and continue ?
//continue;
}
}
当前回答
至于其他语言:
'VB
For i=0 To 10
If i=5 then Exit For '= break in C#;
'Do Something for i<5
next
For i=0 To 10
If i=5 then Continue For '= continue in C#
'Do Something for i<>5...
Next
其他回答
至于其他语言:
'VB
For i=0 To 10
If i=5 then Exit For '= break in C#;
'Do Something for i<5
next
For i=0 To 10
If i=5 then Continue For '= continue in C#
'Do Something for i<>5...
Next
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 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[已打印],因为会继续
break将完全退出循环,continue将跳过当前迭代。
例如:
for (int i = 0; i < 10; i++) {
if (i == 0) {
break;
}
DoSomeThingWith(i);
}
中断将导致循环在第一次迭代时退出-DoSomeThingWith将永远不会执行。此处为:
for (int i = 0; i < 10; i++) {
if(i == 0) {
continue;
}
DoSomeThingWith(i);
}
对于i=0,将不执行DoSomeThingWith,但循环将继续,并且对于i=1到i=9,将执行DoSome ThingWith。