博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
break和continue
阅读量:5131 次
发布时间:2019-06-13

本文共 4504 字,大约阅读时间需要 15 分钟。

break 和 continue

  break用于循环,则用于终止循环
  break用于switch,则用于终止switch
  break不能直接用于if,除非if属于循环内部的一个子句。
  当有多层循环时,break只能终止距离它最近的循环
  当多层switch嵌套时,break只能终止距离它最近的switch

continue 用于跳过本次循环余下的语句,转去判断是否需要执行下次循环

例子:

1.

1 for(1; 2; 3)2 {3     A;4     B;5     continue;//如果执行该语句,则会执行语句3,C和D都会被跳过去,不会被执行6     C;7     D;8 }

2.

1 while (表达式)    //当把for循环转化成while语句时,语句3一定要在continue之前2 {3     A;4     B;5     continue;//如果执行该语句,则会执行表达式,C和D都会被跳过去,不会被执行6     C;7     D;8 }

如: 

1 char ch;2 while( (ch=getchar()) != '\n')3   continue;

详见scanf对用户非法输入的处理

1. break不能直接用于if, 除非if属于循环内部的一个子句:

1 # include 
2 3 int main(void) 4 { 5 int i; 6 /* 7 switch (2) 8 { 9 case 2:10 printf("哈哈!\n");11 break; //OK, break可以用于switch12 }13 14 */15 16 for (i=0; i<3; ++i )17 {18 if (3 > 2)19 break; //break虽然是if内部的语句,但break终止的是外部的for循环20 printf("嘿嘿!\n");21 }22 23 return 0;24 }

break用于多个for循环,只能终止离它最近的:

1 # include 
2 3 int main(void) 4 { 5 int i, j; 6 7 for (i=0; i<3; ++i) 8 { 9 for (j=1; j<4; ++j)10 break; //break只能终止距离它最近的循环11 printf("同志们好!\n");12 }13 14 return 0;15 }

switch + break的用法_电梯程序:

1 # include 
2 3 int main(void) 4 { 5 int val; 6 7 printf("请输入您要进入的楼层: "); 8 scanf("%d", &val); 9 10 switch (val)11 {12 case 1:13 printf("1层开!\n");14 break;15 case 2:16 printf("2层开!\n");17 break;18 case 3:19 printf("3层开!\n");20 break;21 default:22 printf("没有盖到这一层!\n");23 break;24 }25 26 return 0;27 }

多层switch嵌套与break的用法:

1 /* 2 时间:2015年2月7日20:06:10 3 描述:测试break在多层switch中的用法 4 功能:当多层switch嵌套时,break只能终止距离它最近的switch 5 */ 6 # include 
7 8 int main (void) 9 {10 int x =1, y = 0, a = 0, b = 0;11 12 switch (x)13 {14 case 1 :15 switch (y)16 {17 case 0 :18 a++;19 break; //break只能终止距离它最近的switch20 case 1 :21 b++;22 break;23 }24 b = 100; //如果break终止内层switch,则b = 100,如果终止外层switch,则b = 025 break;26 case 2 :27 a++;28 break;29 }30 31 printf("a = %d b = %d\n", a, b);32 33 /*34 2015年2月7日20:11:1535 当有多层循环时,break只能终止距离它最近的循环36 break不能直接用于if,除非if属于循环内部的一个子句。37 如:if (3 > 2)38 break; //错误39 */40 int i, j;41 for (i=0; i<3; i++)42 {43 for (j=0; j<3; j++)44 {45 if (3 > 2)46 break; //if是循环的子句,OK,break虽然是if的子句,但是终止的是内层for循环47 printf("终止if!\n");//如果break终止if,则此句会输出48 }49 printf("终止最近的for循环!\n");//break终止内层循环,此句会输出3次!50 }51 return 0;52 }53 /*54 在VC++6.0输出结果是:55 ----------------------------56 a = 1 b = 10057 终止最近的for循环!58 终止最近的for循环!59 终止最近的for循环!60 Press any key to continue61 ----------------------------62 */

一元二次方程_do...while人机交互

1 /* 2 时间:2015年2月7日18:34:21 3 描述:使用 do...while 人机交互连续计算一元二次方程的解  4 功能: 5 */ 6  7 # include 
8 # include
9 int main (void)10 {11 double a, b, c;12 double delta;13 double x1, x2;14 char ch;15 16 do17 {18 printf("请输入一元二次方程的3个系数:\n");19 printf("a = ");20 scanf("%lf", &a);21 22 printf("b = ");23 scanf("%lf", &b);24 25 printf("c = ");26 scanf("%lf", &c);27 28 delta = b*b - 4*a*c;29 30 if (delta > 0)31 {32 x1 = (-b + sqrt(delta)) / (2*a);33 x2 = (-b - sqrt(delta)) / (2*a);34 printf("有两个解,x1 = %lf, x2 = %lf\n", x1, x2);35 }36 else if (0 == delta)37 {38 x1 = (-b) / (2*a);39 printf("有唯一解:x1 = x2 = %lf\n", x1);40 }41 else42 printf("无实数解!\n");43 44 printf("是否需要继续(Y/N)?\n");45 scanf(" %c", &ch); //注意%c之前要有一个空格,原因略46 47 } while ('y'==ch || 'Y'==ch);48 49 return 0;50 }51 /*52 在VC++6.0输出结果是:53 ----------------------------54 请输入一元二次方程的3个系数:55 a = 156 b = 257 c = 158 有唯一解:x1 = x2 = -1.00000059 是否需要继续(Y/N)?60 y61 请输入一元二次方程的3个系数:62 a = 163 b = 564 c = 665 有两个解,x1 = -2.000000, x2 = -3.00000066 是否需要继续(Y/N)?67 Y68 请输入一元二次方程的3个系数:69 a = 470 b = 171 c = 472 无实数解!73 是否需要继续(Y/N)?74 n75 Press any key to continue76 ----------------------------77 */

 

转载于:https://www.cnblogs.com/moon1992/p/4536593.html

你可能感兴趣的文章
background-clip,background-origin
查看>>
Android 高级UI设计笔记12:ImageSwitcher图片切换器
查看>>
【Linux】ping命令详解
查看>>
对团队成员公开感谢博客
查看>>
java学习第三天
查看>>
python目录
查看>>
django+uwsgi+nginx+sqlite3部署+screen
查看>>
Andriod小型管理系统(Activity,SQLite库操作,ListView操作)(源代码下载)
查看>>
在Server上得到数据组装成HTML后导出到Excel。两种方法。
查看>>
浅谈项目需求变更管理
查看>>
经典算法系列一-快速排序
查看>>
设置java web工程中默认访问首页的几种方式
查看>>
ASP.NET MVC 拓展ViewResult实现word文档下载
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>
VMware Tools安装
查看>>
Linux上架设boost的安装及配置过程
查看>>
[转载]加密算法库Crypto——nodejs中间件系列
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
OpenCV之响应鼠标(三):响应鼠标信息
查看>>