第4章+程序流程设计PPT文档格式.ppt

上传人:b****2 文档编号:15573255 上传时间:2022-11-05 格式:PPT 页数:60 大小:733KB
下载 相关 举报
第4章+程序流程设计PPT文档格式.ppt_第1页
第1页 / 共60页
第4章+程序流程设计PPT文档格式.ppt_第2页
第2页 / 共60页
第4章+程序流程设计PPT文档格式.ppt_第3页
第3页 / 共60页
第4章+程序流程设计PPT文档格式.ppt_第4页
第4页 / 共60页
第4章+程序流程设计PPT文档格式.ppt_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

第4章+程序流程设计PPT文档格式.ppt

《第4章+程序流程设计PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《第4章+程序流程设计PPT文档格式.ppt(60页珍藏版)》请在冰豆网上搜索。

第4章+程序流程设计PPT文档格式.ppt

if(a=b&

x=y)printf(“a=b,x=y”);

if(3)printf(“OK”);

if(a)printf(“%d”,a);

l说明:

uif后面的表达式类型任意uif(x)if(x!

=0)if(!

x)if(x=0)u语句可以是复合语句例考虑下面程序的输出结果:

#includemain()intx,y;

scanf(“%d,%d”,&

x,&

y);

if(xy)x=y;

y=x;

elsex+;

y+;

printf(“%d,%dn”,x,y);

CompileError!

vif语句嵌套:

l一般形式:

if(expr1)if(expr2)statement1elsestatement2elseif(expr3)statement3elsestatement4内嵌if内嵌ifif(expr1)if(expr2)statement1elsestatement2内嵌ifif(expr1)if(expr2)statement1elsestatement3内嵌ifif(expr1)statement1elseif(expr3)statement3elsestatement4内嵌if例输入两数并判断其大小关系/*ch4_3.c*/#includemain()intx,y;

printf(Enterintegerx,y:

);

scanf(%d,%d,&

if(x!

=y)if(xy)printf(XYn);

elseprintf(XYn);

elseprintf(X=Yn);

运行:

Enterintegerx,y:

12,23XYEnterintegerx,y:

12,12X=Ylifelse配对原则:

缺省时,else总是和它上面离它最近的未配对的if配对if()if()if()else.else.else.例:

if(a=b)if(b=c)printf(“a=b=c”);

elseprintf(“a!

=b”);

修改:

实现ifelse正确配对方法:

加例考虑下面程序输出结果:

main()intx=100,a=10,b=20;

intv1=5,v2=0;

if(ab)if(b!

=15)if(!

v1)x=1;

elseif(v2)x=10;

elsex=-1;

printf(“%d”,x);

结果:

-1switch语句(开关分支语句)v一般形式:

switch(表达式)caseE1:

语句组1;

break;

caseE2:

语句组2;

.caseEn:

语句组n;

default:

语句组;

v执行过程:

switch表达式语句组1语句组2语句组n语句组.E1E2Endefaultcasev说明:

lE1,E2,En是常量表达式,且值必须互不相同l语句标号作用,必须用break跳出lcase后可包含多个可执行语句,且不必加lswitch可嵌套l多个case可共用一组执行语句例switch(score)case5:

printf(“Verygood!

”);

case4:

printf(“Good!

case3:

printf(“Pass!

case2:

printf(“Fail!

default:

printf(“dataerror!

运行结果:

score为5时,输出:

Verygood!

Good!

Pass!

Fail!

dataerror!

例voidmain()intx=1,y=0,a=0,b=0;

switch(x)case1:

switch(y)case0:

a+;

case1:

b+;

printf(“na=%d,b=%d”,a,b);

a=2,b=1如:

main()intscore,grade;

printf(“Inputascore(0100):

scanf(“%d”,&

score);

grade=score/10;

/*将成绩整除10,转化成switch语句中的case标号*/switch(grade)case10:

case9:

printf(“grade=An”);

case8:

printf(grade=Bn);

case7:

printf(grade=Cn);

case6:

printf(grade=Dn);

case5:

case0:

printf(“grade=En”);

printf(“Thescoreisoutofrange!

n”);

4.3循环型程序设计概述C语言可实现循环的语句:

l用goto和if构成循环lwhile语句ldowhile语句lfor语句goto标号;

.标号:

语句;

goto语句及用goto构成循环vgoto语句一般格式:

例用if和goto语句构成循环,求/*ch5_1.c*/#includemain()inti,sum=0;

i=1;

loop:

if(i=100)sum+=i;

i+;

gotoloop;

printf(%d,sum);

sum=0+1sum=1+2=3sum=3+3=6sum=6+4sum=4950+100=5050循环初值循环终值循环变量增值循环条件循环体v功能:

无条件转移语句v说明:

l不能用整数作标号l只能出现在goto所在函数内,且唯一l只能加在可执行语句前面l限制使用goto语句while语句v一般形式:

while(表达式)循环体语句;

v执行流程:

expr循环体假(0)真(非0)whilev特点:

先判断表达式,后执行循环体v说明:

l循环体有可能一次也不执行l循环体可为任意类型语句l下列情况,退出while循环u条件表达式不成立(为零)u循环体内遇break,return,gotol无限循环:

while

(1)循环体;

例用while循环求/*ch5_2.c*/#includemain()inti,sum=0;

while(i=100)sum=sum+i;

循环初值循环终值循环变量增值循环条件循环体dowhile语句v一般形式:

do循环体语句;

while(表达式);

do循环体expr假(0)真(非0)whilev特点:

先执行循环体,后判断表达式v说明:

l至少执行一次循环体ldowhile可转化成while结构expr循环体假(0)真(非0)循环体While循环例用dowhile循环求#includemain()inti,sum=0;

dosum+=i;

while(i=100);

例while和dowhile比较/*ch5_4.c*/#includemain()inti,sum=0;

scanf(%d,&

i);

while(i=10);

main()inti,sum=0;

while(i=10)sum+=i;

for语句v一般形式:

for(expr1;

expr2;

expr3)循环体语句;

expr2循环体假(0)真(非0)forexpr1expr3vfor语句一般应用形式:

for(循环变量赋初值;

循环条件;

循环变量增值)循环体语句;

v说明:

lfor语句中expr1,expr2,expr3类型任意,都可省略,但分号;

不可省l无限循环:

for(;

)lfor语句可以转换成while结构expr1;

while(expr2)循环体语句;

expr3;

例用for循环求#includemain()inti,sum=0;

for(i=1;

i=100;

i+)sum+=i;

#includemain()inti=0;

for(i=0;

i10;

i+)putchar(a+i);

abcdefghij例:

)putchar(a+(i+);

putchar(a+i),i+);

main()inti,j,k;

for(i=0,j=100;

i=j;

i+,j-)k=i+j;

printf(%d+%d=%dn,i,j,k);

#includemain()charc;

(c=getchar()!

=n;

)printf(%c,c);

#includemain()inti,c;

i+=3)printf(%c,i+c);

例(for)梯形法求数值积分0yxaa+ha+iha+(i+1)hbf(x)/面积赋初值*/#includemain()floata,b;

doubles,h;

doublef(doublex);

intn,i;

printf(Inputintegralareaa,b:

scanf(%f,%f,&

a,&

b);

printf(Inputn:

n);

h=(b-a)/n;

s=0.5*h*(f(a)+f(b);

i=n-1;

i+)s=s+h*f(a+i*h);

printf(nThevalueis:

%lf,s);

doublef(doublex)return(sqrt(4.0-x*x);

循环的嵌套v三种循环可互相嵌套,层数不限v嵌套循环的执行流程

(1)while()while().

(2)dodowhile();

.while();

(3)while()dowhile();

.(4)for(;

)dowhile();

while().内循环外循环内循环v嵌套循环的跳转禁止:

l从外层跳入内层l跳入同层的另一循环l向上跳转例循环嵌套,输出九九表12345678912345678924681

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1