《程序控制結(jié)構(gòu)》PPT課件.ppt
第3章C語(yǔ)言程序控制結(jié)構(gòu),三種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),(a)順序結(jié)構(gòu)(b)選擇結(jié)構(gòu)(c)循環(huán)結(jié)構(gòu),圖3.1三種基本控制結(jié)構(gòu)流程圖,(1)第一種形式為基本形式:if(表達(dá)式)語(yǔ)句;,輸入兩個(gè)整數(shù),輸出其中的較大數(shù)voidmain()inta,b,max;printf("ninputtwonumbers:");scanf("%d%d",else語(yǔ)句n;,voidmain()charc;printf("inputacharacter:");c=getchar();if(c=0if(ab)t=a;a=b;bt;printf(”a=%d,b=%d”,a,b);和if(ab)ta;ab;bt;printf(”ad,bd”,a,b);,請(qǐng)問:1.兩段程序有什么區(qū)別?2.其執(zhí)行結(jié)果有什么不同?,a=1,b=3,a=3,b=?,3.2.1switch語(yǔ)句(不帶break語(yǔ)句)一般形式為:,switch(表達(dá)式)case常量表達(dá)式1:語(yǔ)句1;case常量表達(dá)式2:語(yǔ)句2;.case常量表達(dá)式n:語(yǔ)句n;default:語(yǔ)句n+1;,例3.7從鍵盤輸入一個(gè)數(shù)字,則輸出一個(gè)英文單詞。voidmain()inta;printf("inputintegernumber:");scanf("%d",n<=100;n+)s=s+n;printf("s=%dn",s);,3.3for語(yǔ)句,3.3.2for語(yǔ)句使用注意事項(xiàng),for語(yǔ)句中的各表達(dá)式都可省略,但分號(hào)間隔符不能少。1)for(;表達(dá)式;表達(dá)式)省去了表達(dá)式1。(見課本P.35例3.11)2)for(表達(dá)式;表達(dá)式)省去了表達(dá)式2。(將造成無限循環(huán))3)for(表達(dá)式;表達(dá)式;)省去了表達(dá)式3。(見課本P.36例3.12)4)for(;)省去了全部表達(dá)式。(見課本P.36例3.13),循環(huán)體可以是空語(yǔ)句。,例3.14#includevoidmain()intn=0;printf("inputastring:n");for(;getchar()!=n;n+);printf("%d",n);,1*1=12*1=22*2=43*1=33*2=63*3=94*1=44*2=84*3=124*4=165*1=55*2=105*3=155*4=205*5=256*1=66*2=126*3=186*4=246*5=306*6=36,3.4while語(yǔ)句,3.4.1while語(yǔ)句的一般形式,While循環(huán)計(jì)算1加到100main()intn=1,s=0;while(n<=100)s=s+n;n+;printf(“s=%d”,s);,3.4.2while語(yǔ)句使用注意事項(xiàng),循環(huán)體如包括有一個(gè)以上的語(yǔ)句,則必須用括起來,組成復(fù)合語(yǔ)句。,應(yīng)注意循環(huán)條件的選擇以避免死循環(huán)。,允許while語(yǔ)句的循環(huán)體又是while語(yǔ)句、for語(yǔ)句或do-while語(yǔ)句,從而形成多重循環(huán)(循環(huán)的嵌套使用參見3.5節(jié))。,while語(yǔ)句中的表達(dá)式一般是關(guān)系表達(dá)或邏輯表達(dá)式,只要表達(dá)式的值為真(非0)即可繼續(xù)循環(huán)。,例3.18main()inta=0;while(a=5)printf("%d",a+);,3.5do-while語(yǔ)句,3.5.1do-while語(yǔ)句的一般形式,do-while循環(huán)計(jì)算1加到100main()intn=1,s=0;dos=s+n;n+;while(n<=100);printf(“s=%d”,s);,3.5.2do-while語(yǔ)句使用注意事項(xiàng),在if語(yǔ)句,while語(yǔ)句中,表達(dá)式后面都不能加分號(hào),而在do-while語(yǔ)句的表達(dá)式后面則必須加分號(hào)。,do-while和while語(yǔ)句相互替換時(shí),要注意修改循環(huán)控制條件。,在do和while之間的循環(huán)體由多個(gè)語(yǔ)句組成時(shí),也必須用括起來組成一個(gè)復(fù)合語(yǔ)句。,do-while語(yǔ)句也可與while、for語(yǔ)句相互嵌套,構(gòu)成多重循環(huán)。以下結(jié)構(gòu)都是合法的嵌套。,4種轉(zhuǎn)移語(yǔ)句:break、continue、return和goto。,例3.20輸出100以內(nèi)能被7整除的數(shù)。voidmain()intn;for(n=7;n<=100;n+)if(n%7!=0)continue;printf("%d",n);,3.6程序轉(zhuǎn)移控制語(yǔ)句,例:break的使用voidmain()intn;for(n=7;n<=100;n+)if(n%7!=0)break;printf("%d",n);,例:continue和break的使用main()inti=0;while(i<10)if(i<1)printf("%d",i);continue;if(i=5)break;i+;請(qǐng)問:此程序的輸出結(jié)果如何?,THEENDThanks!,