您的位置:首页 > 产品设计 > UI/UE

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

2016-06-15 15:16 471 查看
【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终止的是第二个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;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C c语言