一、break
在学习switch的时候,我们知道break可以使流程跳出switch结构,来执行switch语句下面的一个语句,实际上,break语句还可以用来从循环体内跳出循环体,提前结束循环,接着执行循环下面的语句。
下面给大家举一个例子:
#include<stdio.h>
int main()
{
int i=1;
int num=0;
while (i<101)
{
num=num+i;
i=i+1;
if (i>50)
{
break;
}
}
printf("num=%d",num);
return 0;
}
num=1275
PS C:\csay\cyuyan>
在这串代码中,我们能很好理解,就是当i的值大于50时就跳出循环,最后输出的就是从1加到50的和。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环;而执行循环后面的语句,通常break语句总是与if语句联在一起,即满足条件时便跳出循环。
注意:1. break语句对if-else的条件语句不起作用。2. 在多层循环中,一个break语句只向外跳一层。3.break语句只能用于循环语句和switch语句之中,不能单独使用。
二、continue
有的时候不希望终止整个循环的操作,而是希望提前结束本次循环,而接着执行下次循环,这时可以用continue语句。
下面给大家分析一个例子:
#include <stdio.h>
int main()
{
int i;
for(i=1;i<=10;i++)
{
if(i%2==1)
continue;
printf("%d\n",i);
}
return 0;
}
2
4
6
8
10
PS C:\csay\cyuyan>
这个例子中,循环1-10中的数字,如果数字是奇数则跳过本次循环,直接执行下一次循环,如果是偶数则输出该数字。
continue语句的语法比较简单,它只有一个关键字,不需要加任何表达式或其他参数。通常情况下,continue语句放在循环体内,用来跳过循环体中某一次后面的语句,进入下一次循环。
三、区别
break 语句用于退出当前的循 环结构。当你使用 break`时,它会立即停止当前循环的执行,并继续向下执行后续的代码。如果当前循环是嵌套循环的一部分,那么 break只会影响它所在的这一层的循环。如果在多层循环嵌套的情况下,你需要从最内层的循环开始逐层向上退出,这时可以使用递归调用break来实现。
continue 语句则用于提前结束当前循环的本次执行,而不终止整个循环。当你使用continue 时,它会直接跳过循环体中剩余的语句(包括 printf等函数),并重新评估是否应该执行循环的条件。如果条件不满足,则不会进入循环的下次迭代。需要注意的是continue仅限于在 for、while、do-while这些循环语句中使用,且不能用在 switch语句中。