一、问题
break 语句⽤于在程序中跳转,那么它具体是怎样跳转的呢?continue 语句也⽤于跳转,它们有什么区别呢?
二、解答
1. break 语句
break 语句终⽌并跳出循环,继续执⾏后⾯的代码。break 语句的⼀般形式为:
cpp
break;
break 语句不能⽤于循环语句和 switch 语句之外的任何其他语句中。例如,在循环使⽤ break 语句。
cpp
while(1)
{
printf("hello");
break;
}
在代码中,虽然 while 语句是⼀个条件永远为真的循环,但是在其中使⽤ break 语句使得程序流程跳出循环。
这个 break 语句和 switch...case 分⽀结构中的 break 语句作⽤是不同的。当循环体中嵌套 switch 语句,并且 break 出现在 switch 语句中,执⾏到 break 时,则只跳出 switch 语句块,并⾮跳出循环。
下⾯通过具体实例来介绍如何使⽤ break 语句跳出循环。 使⽤ for 语句执⾏循环输出 10 次的操作,在循环体中判断输出的次数。如果当循环变量为5次时,使⽤ break 语句跳出循环,终⽌循环输出操作,代码如下。
cpp
#include <stdio.h>
int main()
{
int i;
for (i = 0; i < 10; i++)
{
if (i == 5)
{
printf("Hello World\n");
break;
}
printf("The i is:%d\n", i);
}
return 0;
}
变量 i 在 for 语句中被赋值为0,因为 i<10,则循环执⾏ 10 次。在循环语句中使⽤ if 语句判断当前 i 的值。当 i 值为5时,if 判断为真,使⽤ break 语句跳出循环。
运⾏程序,显示结果
cpp
The i is:0
The i is:1
The i is:2
The i is:3
The i is:4
Hello World
2. break 语句与 continue 语句的区别
在 switch 语句中,break 语句可⽤在 case 分⽀的后⾯,⽤于执⾏完某个分⽀后跳出switch 语句,⽽ continue 语句却不能⽤在 switch 语句中。
在循环语句中,break 语句⽤于结束循环。continue ⽤于跳过本次循环体中余下尚未执⾏的语句,然后进⾏下⼀次的循环条件判定。continue语句只是结束本次循环却并未跳出循环,终⽌程序。
注意:
当有循环嵌套时,break 语句只跳出本层循环,并不能结束整个多层循环。
三、总结
在遇到不顾表达式检验的结果⽽强⾏终⽌循环的情况时,可以使⽤ break 语句结束循环。但 break 只能跳出本层循环,若想在多层循环跳出可⽤ goto 语句。