摘要:C 语言中的 break 用于终止一个循环或者终止 switch 语句中的一个 case;continue用于结束本次循环。
break
C 语言中 break 语句有且仅有以下两种用法:
- 当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
- 可用于终止 switch 语句中的一个 case。
不管是 for 循环,还是 while 循环,或者是 do…while 循环,都可以用 break 跳出来,但是 break 只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹”它的最里面的那一层循环,无法一次跳出所有循环。在多层 switch 嵌套的程序中,break 也只能跳出其所在的距离它最近的 switch。但多层 switch 嵌套实在是少见。
break语句不能用于循环语句(如for循环或while循环)和switch语句之外的任何其他语句中。
break 的执行流程如下所示:
单重循环情况:选用 while 循环结构示意(do-while 循环、for 循环同样适用)。
while (循环判断表达式)
{
...
if(条件表达式)
break;
循环体中break后的语句;
}
循环体后的第 1 条语句;
循环体后的第 2 条语句;
...
在循环体中,当满足一定条件执行到 break 语句时,终止 break 所在的该层循环,即“循环体中 break 后的语句”部分将不再被执行,程序执行流程转向从“循环结构后的第 1 条语句”处,开始继续往后执行。
双重循环情况:使用双重 for 循环嵌套结构示意,其他类型的循环嵌套组合同样适用。
for (;循环判断表达式1;)
{
...
for(;循环判断表达式2;)
{
...
if(条件表达式)
break;
内层循环体中break后的语句;
}
内层循环结构后的第1条语句;
内层循环结构后的第2条语句;
...
}
在内层循环中,当满足一定条件执行到 break 语句时,仅结束 break 所在内层循环的执行(在本轮外层循环中,“内层循环体中 break 后的语句”部分不再被执行),程序执行流程跳转到“内层循环结构后的第 1 条语句”所在的外层循环体处,开始继续执行。
continue
continue的用法十分简单,其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,然后进行下一次是否执行循环的判定。
continue 语句的执行流程如下所示:
选用 for 循环结构示意
for(初始表达式;循环判断表达式;增量表达式)
{
...
if(条件表达式)
continue;
循环体中continue后的所有语句;
}
当在上述 for 循环中执行到 continue 语句时,本次循环体的执行流程将跳过“循环体中 continue 后的所有语句”,接着执行“增量表达式”部分,然后执行“循环判断表达式”,即提前进入下一次循环的准备工作。
区别:
- Continue语句和Break语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行。而Break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
参考链接
GB/T 15272-1994 (6.6.6.2-3)
https://www.runoob.com/cprogramming/c-break-statement.html
http://c.biancheng.net/view/182.html
http://c.biancheng.net/view/266.html
https://www.cnblogs.com/guxuanqing/p/4892823.html