C语言break和continue语句(跳出循环)

C语言中有两个跳出循环的语句,它们分别是 break 和 continue:
  • break 用来跳出整个循环语句,也就是跳出所有的循环次数;
  • continue 用来跳出当次循环,也就是跳过当前的一次循环。

break 语句

break 语句的作用是终止并退出当前的循环语句(见图 1),执行该循环语句后面的语句,其一般格式如下:
break;    //一般出现在 if 语句的主体部分

break 终止并退出循环语句
图 1:break 终止并退出循环语句

下面的 for 循环语句正常情况下会打印出 10 个数字,然后再打印出“OK”。不过,其中的 break 语句使得循环在输出 5 个数字以后就打印出了“OK”,for 循环语句实际上只执行了 5 次循环。
for(i=1;i<=10;i++)
{
    printf("%d",i);
    if(i==5)
        break;            //当循环变量 i=5 时退出循环,执行 for 语句后面的printf()
    printf("OK");
}

continue 语句

break 语句使得循环语句还没有完全执行完就提前结束,与之相反,continue 语句并不终止当前的循环语句的执行,仅仅是终止当前循环变量 i 所控制的这一次循环,而继续执行该循环语句。continue 语句的实际含义是“忽略 continue 之后的所有循环体语句,回到循环的顶部并开始下一次循环”(见图 2)。其一般格式如下:
continue;     //一般出现在 if 语句的主体部分

continue终止当次循环,返回并开始下一次循环
图 2:continue 终止当次循环,返回并开始下一次循环

下面的 for 循环语句执行了全部 10 次循环,但其循环体中 printf() 语句只执行了 5 次,因为,当 i 的值为奇数时,continue 语句使得其后的 printf() 语句没有被执行。
for(i=1;i<=10;i++)
{
    if(i%2==1)
        continue;        //当 i 为奇数时不执行下面的printf(),而继续下一次循环
    printf("%d是偶数\n",i);
}

知识点总结

  1. 用 break 可以提前终止 for、while 和 do-while 循环。
  2. 用 continue 可以强迫循环进入新的循环周期。
  3. break 和 continue 前通常有 if 语句进行某种关系测试。