休息与继续
在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);
}
break会导致循环在第一次迭代时退出 - DoSomeThingWith
永远不会被执行。 这里:
for (int i = 0; i < 10; i++) {
if(i == 0) {
continue;
}
DoSomeThingWith(i);
}
对于i = 0
,不会执行DoSomeThingWith
,但循环将继续,并且对于i = 1
到i = 9
将执行DoSomeThingWith
。
理解这一点的一个非常简单的方法是在每个关键词后面加上“loop”这个词。 现在这些术语是有意义的,如果他们只是像日常短语一样阅读。
break
循环 - 循环中断并停止。
continue
循环 - 循环继续执行下一次迭代。
中断会导致程序计数器跳出最内层循环的范围
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:;
}
链接地址: http://www.djcxy.com/p/5145.html
上一篇: break vs. continue