3.[do...while]+[switch]+[break]+[continue]

来源:互联网 发布:js 获取div的属性 编辑:程序博客网 时间:2024/06/11 18:51
【do...while】  主要用于人机交互 
格式: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终止的是第二个switchcase 1:b++;break;}b = 100;break;    //这里的break终止的是第一个switchcase 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;}
                                             
0 0