break和continue
2015-05-28 18:06
351 查看
break 和 continue
break用于循环,则用于终止循环
break用于switch,则用于终止switch
break不能直接用于if,除非if属于循环内部的一个子句。
当有多层循环时,break只能终止距离它最近的循环
当多层switch嵌套时,break只能终止距离它最近的switch
continue 用于跳过本次循环余下的语句,转去判断是否需要执行下次循环
例子:
1.
2.
如:
详见scanf对用户非法输入的处理
1. break不能直接用于if, 除非if属于循环内部的一个子句:
break用于多个for循环,只能终止离它最近的:
switch + break的用法_电梯程序:
多层switch嵌套与break的用法:
一元二次方程_do...while人机交互
break用于循环,则用于终止循环
break用于switch,则用于终止switch
break不能直接用于if,除非if属于循环内部的一个子句。
当有多层循环时,break只能终止距离它最近的循环
当多层switch嵌套时,break只能终止距离它最近的switch
continue 用于跳过本次循环余下的语句,转去判断是否需要执行下次循环
例子:
1.
for(1; 2; 3) { A; B; continue;//如果执行该语句,则会执行语句3,C和D都会被跳过去,不会被执行 C; D; }
2.
while (表达式) //当把for循环转化成while语句时,语句3一定要在continue之前 { A; B; continue;//如果执行该语句,则会执行表达式,C和D都会被跳过去,不会被执行 C; D; }
如:
char ch; while( (ch=getchar()) != '\n') continue;
详见scanf对用户非法输入的处理
1. break不能直接用于if, 除非if属于循环内部的一个子句:
# include <stdio.h> int main(void) { int i; /* switch (2) { case 2: printf("哈哈!\n"); break; //OK, break可以用于switch } */ for (i=0; i<3; ++i ) { if (3 > 2) break; //break虽然是if内部的语句,但break终止的是外部的for循环 printf("嘿嘿!\n"); } return 0; }
break用于多个for循环,只能终止离它最近的:
# include <stdio.h> int main(void) { int i, j; for (i=0; i<3; ++i) { for (j=1; j<4; ++j) break; //break只能终止距离它最近的循环 printf("同志们好!\n"); } return 0; }
switch + break的用法_电梯程序:
# include <stdio.h> int main(void) { int val; printf("请输入您要进入的楼层: "); scanf("%d", &val); switch (val) { case 1: printf("1层开!\n"); break; case 2: printf("2层开!\n"); break; case 3: printf("3层开!\n"); break; default: printf("没有盖到这一层!\n"); break; } return 0; }
多层switch嵌套与break的用法:
/* 时间:2015年2月7日20:06:10 描述:测试break在多层switch中的用法 功能:当多层switch嵌套时,break只能终止距离它最近的switch */ # include <stdio.h> int main (void) { int x =1, y = 0, a = 0, b = 0; switch (x) { case 1 : switch (y) { case 0 : a++; break; //break只能终止距离它最近的switch case 1 : b++; break; } b = 100; //如果break终止内层switch,则b = 100,如果终止外层switch,则b = 0 break; case 2 : a++; break; } printf("a = %d b = %d\n", a, b); /* 2015年2月7日20:11:15 当有多层循环时,break只能终止距离它最近的循环 break不能直接用于if,除非if属于循环内部的一个子句。 如:if (3 > 2) break; //错误 */ int i, j; for (i=0; i<3; i++) { for (j=0; j<3; j++) { if (3 > 2) break; //if是循环的子句,OK,break虽然是if的子句,但是终止的是内层for循环 printf("终止if!\n");//如果break终止if,则此句会输出 } printf("终止最近的for循环!\n");//break终止内层循环,此句会输出3次! } return 0; } /* 在VC++6.0输出结果是: ---------------------------- a = 1 b = 100 终止最近的for循环! 终止最近的for循环! 终止最近的for循环! Press any key to continue ---------------------------- */
一元二次方程_do...while人机交互
/* 时间:2015年2月7日18:34:21 描述:使用 do...while 人机交互连续计算一元二次方程的解 功能: */ # include <stdio.h> # include <math.h> int main (void) { double a, b, c; double delta; double x1, x2; char ch; do { printf("请输入一元二次方程的3个系数:\n"); printf("a = "); scanf("%lf", &a); printf("b = "); scanf("%lf", &b); printf("c = "); scanf("%lf", &c); delta = b*b - 4*a*c; if (delta > 0) { x1 = (-b + sqrt(delta)) / (2*a); x2 = (-b - sqrt(delta)) / (2*a); printf("有两个解,x1 = %lf, x2 = %lf\n", x1, x2); } else if (0 == delta) { x1 = (-b) / (2*a); printf("有唯一解:x1 = x2 = %lf\n", x1); } else printf("无实数解!\n"); printf("是否需要继续(Y/N)?\n"); scanf(" %c", &ch); //注意%c之前要有一个空格,原因略 } while ('y'==ch || 'Y'==ch); return 0; } /* 在VC++6.0输出结果是: ---------------------------- 请输入一元二次方程的3个系数: a = 1 b = 2 c = 1 有唯一解:x1 = x2 = -1.000000 是否需要继续(Y/N)? y 请输入一元二次方程的3个系数: a = 1 b = 5 c = 6 有两个解,x1 = -2.000000, x2 = -3.000000 是否需要继续(Y/N)? Y 请输入一元二次方程的3个系数: a = 4 b = 1 c = 4 无实数解! 是否需要继续(Y/N)? n Press any key to continue ---------------------------- */
相关文章推荐
- break 和continue以及return的区别
- continue、break、return的区别
- bash,bg,bind,break,builtin,caller,compgen, complete,compopt,continue,declare,dirs,disown,enable,eval,exec,expo
- [javase学习笔记]-3.6 break语句与continue语句
- C 语言循环之break、continue
- C# break,continue,return
- js中退出语句break,continue和return 比较(转)
- Java控制语句——break和continue
- SQL server中如何使用return,break和continue
- 循环中 break 与 continue 的区别
- break 和 continue 语句, 以及循环中的 else 子句
- 用while(true)和continue、break来实现在一个大循环里switch
- 跳转语句continue;break;return的区别
- break ,continue ,return 的区别及作用?
- break , continue , exit
- C中,continue和break的用法
- Shell break和continue命令
- java中break和continue的区别详解(附源码)
- Java:break/continue/return的用法
- Shell入门教程:流程控制(7)break和continue