C语言break和continue的用法(附带实例)
在多路分支的 switch 语句中,break 语句表示跳出整个 switch 语句块。break 语句的这个功能,在 for、while、do while 语句块中,主要用于中断目前的循环。
continue 语句的作用与 break 语句类似,主要用于循环,不同的是 break 语句会结束整个程序循环的执行,而 continue 语句只会结束其之后的循环语句,并跳回循环的开头继续下一个循环,而不是离开循环。
简而言之,二者的区别是:continue 语句只结束本次循环,而不是终止整个循环;break 语句则是结束整个循环,不再判断执行循环的条件是否成立。
continue 语句只能在循环语句中使用,即只能在 for、while 和 do while 循环中使用,除此之外,continue 语句不能在任何语句中使用。
【实例 1】判断一个数是不是素数。
所谓素数(也称质数),是指在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。因此,判断一个整数 m 是否是素数,只需用 m 除以 2~m−1 之间的每一个整数,如果都不能被整除,那么 m 就是一个素数。但实际如果 m 能被 2~m−1 之间任一整数整除,其两个因数必定有一个小于或等于,另一个大于或等于。
程序代码如下:
【实例 2】输入字符并输出,如果是回车就退出循环,按 Esc 键则不输出,继续输入下一个字符,程序代码如下:
continue 语句的作用与 break 语句类似,主要用于循环,不同的是 break 语句会结束整个程序循环的执行,而 continue 语句只会结束其之后的循环语句,并跳回循环的开头继续下一个循环,而不是离开循环。
简而言之,二者的区别是:continue 语句只结束本次循环,而不是终止整个循环;break 语句则是结束整个循环,不再判断执行循环的条件是否成立。
continue 语句只能在循环语句中使用,即只能在 for、while 和 do while 循环中使用,除此之外,continue 语句不能在任何语句中使用。
【实例 1】判断一个数是不是素数。
所谓素数(也称质数),是指在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。因此,判断一个整数 m 是否是素数,只需用 m 除以 2~m−1 之间的每一个整数,如果都不能被整除,那么 m 就是一个素数。但实际如果 m 能被 2~m−1 之间任一整数整除,其两个因数必定有一个小于或等于,另一个大于或等于。
程序代码如下:
#include <stdio.h>
#include <math.h> //需包含math数学库,通过sqrt()函数进行开平方计算
int main()
{
int i_m,i,i_k;
printf("请输入一个整数: ");
scanf("%d",&i_m);
i_k=(int)sqrt(i_m);
for(i=2;i<=i_k;i++)
if(i_m%i==0)
break; //能整除则跳出整个循环
if(i<=i_k)
printf("%d 不是素数。\n",i_m);
else
printf("%d是素数。\n",i_m);
return 0;
}
编译运行,结果如下:
请输入一个整数: 11
11是素数。
【实例 2】输入字符并输出,如果是回车就退出循环,按 Esc 键则不输出,继续输入下一个字符,程序代码如下:
#include <stdio.h>
int main( )
{
char c_a;
while(c_a!=13) /*如果回车就退出循环,其中13是回车字符对应的ASCII码*/
{
c_a=getch(); //输入字符
if(c_a==0X1B) //0X1B是ESC键对应的ASCII码
continue; /*若按Esc键则不输出,否则进行下一次循环*/
printf("%c\n",c_a); //输出该字符
}
return 0;
}
编译运行,结果如下:
1 2
ICP备案:
公安联网备案: