在 C#(随意回答其他语言)循环中,break 和 continue 之间的区别是什么,作为离开循环结构的手段,并进入下一次迭代?
例:
foreach (DataRow row in myTable.Rows)
{
if (someConditionEvalsToTrue)
{
break; //what's the difference between this and continue ?
//continue;
}
}
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
将执行DoSomeThingWith
。
理解这一点的一个非常简单的方法是在每个关键字后面加上 “循环” 一词。如果他们只是像日常用语一样阅读,那么这些术语现在就有意义
break
循环 - 循环中断并停止。
continue
循环 - 循环继续执行下一次迭代。
break导致程序计数器跳出最内层循环的范围
for(i = 0; i < 10; i++)
{
if(i == 2)
break;
}
像这样工作
for(i = 0; i < 10; i++)
{
if(i == 2)
goto BREAK;
}
BREAK:;
继续跳转到循环结束。在 for 循环中,继续跳转到增量表达式。
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:;
}