3.[do...while]+[switch]+[break]+[continue]
2016-06-15 15:16
471 查看
【do...while】 主要用于人机交互
1.break 如果用于循环是用来终止循环
2.break 如果用于switch,则是用于终止switch
3.break 不能直接用于if,除非if属于循环内部的一个子句
4.break 虽然是if内部的语句,但break终止的却是外部的for循环
用于跳过本次循环余下的语句,转去判断是否需要执行下次循环
格式: do { ...... }while(表达式)do...while并不等价于for,当然也不等价于while
一元二次方程: #include<stdio.h> #include<math.h> int main(void) { double a,b,c; double delta; double x1,x2; char ch; do { printf("请输入一元二次方程的三个系数:\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",x1,x2); } else if(0==delta) { x1=x2=(-b)/(2*a); printf("有唯一解,x1=x2=%lf\n",x1,x2); } else { printf("无实数解!\n"); } printf("想继续么(Y/N):"); scanf(" %c\n",&ch); //%c前面必须添加一个空格,否则程序无法正常执行 }while('y'==ch || 'Y'==ch); //当输入小y或者大Y的时候,继续循环 return 0; }【switch】多用于选择程式
#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; }【break】
1.break 如果用于循环是用来终止循环
2.break 如果用于switch,则是用于终止switch
3.break 不能直接用于if,除非if属于循环内部的一个子句
4.break 虽然是if内部的语句,但break终止的却是外部的for循环
#include<stdio.h> int main(void) { int i; for (i=0; i<3; ++i) { if (3>2) break; //break虽然是if内部的语句,但break终止的却是外部的for循环 printf("hello!\n"); } return 0; } --------------运行结果什么都没有输出----5.break 在多层循环中,break只能终止距离最里面包裹它的那个循环
#include<stdio.h> int main(void) { int i, j; for (i=1; i<3; ++i) { for (j=1; j<4; ++j) break; //break只能终止距离它最近的循环 printf("hello!\n"); } return 0; } -----------运行结果会出现3个“hello!”------6.在多层switch嵌套中,break只能终止距离它最近的switch
#include<stdio.h> int main(void) { int x=1, y=0, a=0, b=0; switch(x) //第一个switch { case 1: switch(y) //第二个switch { case 0: a++; break; //这里的break终止的是第二个switch case 1: b++; break; } b = 100; break; //这里的break终止的是第一个switch case 2: a++; b++; break; } printf("%d %d\n",a,b); return 0; } -------------运行结果为“1 100”------------------【continue】
用于跳过本次循环余下的语句,转去判断是否需要执行下次循环
格式: for(1;2;3) { A; B; continue; //如果执行该语句,则执行完该语句后,会执行语句3,C和D都会被跳过去。 C; D; } ----------------------------------------------------------- while(表达式) { A; B; continue; //如果执行该语句,则执行完该语句后,会执行表达式,C和D都会被跳过去。 C; D; }
举例:#include <stdio.h> main() { int i; char ch; scanf("%d",&i); printf("i=%d\n",i); while ((ch=getchar()) != '\n') //如果获取的字符不等于回车,则继续循环 continue; int j; scanf("%d",&j); printf("j=%d\n",j); return 0; }
#include <stdio.h> int main() { int i=0,s=0; do { if (i%2) { i++; continue; //会跳转到while行去执行 } i++; s+=i; }while(i<5); printf("%d\n",s); return 0; } ------输出结果s的值为9------- #include<stdio.h> int main() { int a=1, b; for(b=1; b<=10; b++) { if(a>=8) break; //会跳转到printf那一行执行 if(1==a%2) { a+=5; continue; //会跳转到第一个for循环语句后面的b++ } a-=3; } printf("b=%d\n",b); return 0; }
相关文章推荐