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