【正文】
intf(I very very bu love you)。break。 default:printf(I don39。t know)。 } getch()。}l case后面是常量表達(dá)式(建議大家使用整數(shù)或字符表達(dá)式),且值必須互不相同【例17】一個典型的應(yīng)用include include main(){ int x。 scanf(%d,amp。x)。 switch(x) { case 1:printf(I love you)。break。 case 2:printf(I bu love you)。 break。 case 2:printf(I very feichang love you)。break。 case 3:printf(I very very bu love you)。break。 default:printf(I don39。t know)。 } getch()。}編譯錯誤(重復(fù)定義)main(){ int x,y=1,t=2。 scanf(%d,amp。x)。 switch(x) { case 1:printf(I love you)。break。 case 2:printf(I bu love you)。 break。 case y+t:printf(I very feichang love you)。break。 case 4:printf(I very very bu love you)。break。 default:printf(I don39。t know)。 }getch()。}l case后面要有空格l case后面可包含多個執(zhí)行語句,且不用加{};【例18】一個典型的應(yīng)用main(){ int x,y=1,t=2,m。 scanf(%d,amp。x)。 switch(x) { case 1:printf(I love you)。break。 case 2:printf(I bu love you)。 printf(akldjfklajdflkajsdklfjasdklf)。 m=y+t。 printf(%d,m)。 break。 case 3:printf(I very feichang love you)。break。 case 4:printf(I very very bu love you)。break。 default:printf(I don39。t know)。 } getch()。 }l 多個case語句可以共用一組執(zhí)行語句l Switch可以嵌套【例19】一個典型的應(yīng)用main(){ int x=0,y=2,z=3。 switch(x+1) { case 1:switch(y==3) { case 1:printf(amp。amp。)。 case 2:printf(u1)。 } case 2:switch(z) { case 1:printf($$)。 case 2:printf(*****)。 case 3:printf(%$%$)。 } } getch()。 }l Switch語句完全可以不用,用if就可以全部完成其功能;【例20】請自行設(shè)計一個自動飲料機(jī)屏幕選擇功能(流程圖如下)main(){ int choice。 printf(=============================歡迎使用天山牌自動飲料機(jī)===========================\n)。 printf(請選擇飲料:\n)。 printf(\n)。 printf(\n)。 printf(\n)。 printf(\n)。 printf(\n)。 scanf(%d,amp。choice)。 switch(choice) { case 1:printf(雪碧透心涼)。break。 case 2:printf(可樂,激情無限)。break。 case 3:printf(人類沒有啤酒,世界將會怎樣)。break。 case 4:printf(喝完老窖,老鼠找貓)。break。 case 5:printf(奶茶,我要香飄飄)。break。 default:printf(對不起,你選擇的飲料未經(jīng)法律許可,不能出售)。 } getch()。 }【例21】用switch語句編程,根據(jù)成績打印出等級。main(){ int score,temp。 printf(請輸入成績:)。 scanf(%d,amp。score)。 if(score==100) temp=9。 else temp=score/10。 switch(temp) { case 0: case 1: case 2: case 3: case 4: case 5:printf(不及格)。 break。 case 6:printf(及格)。 break。 case 7: case 8:printf(良好)。break。 case 9:printf(優(yōu)秀)。break。 default:printf(非法操作)。 } getch()。 }第六章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)使用一定的條件讓一個程序執(zhí)行若干次,循環(huán)結(jié)構(gòu)也叫重復(fù)結(jié)構(gòu),可以完成重復(fù)、規(guī)律性的操作?;镜难h(huán)語句(重點) 在C語言中,有4種語句可以構(gòu)成循環(huán)。Goto、 while、dowhile、for goto語句【例1】請編寫程序,求的值。main(){ int i=1。 long sum=0。 repeat:if(i=1000) { sum=sum+i。 i++。 goto repeat。 } printf(sum=%ld,sum)。 getch()。 }要求:能看懂別人的程序就可以了,不要求會用。 while語句一般形式:while表達(dá)式 語句序列expr循環(huán)體假(0)真(非0)while注意點:l 先判斷條件,后執(zhí)行循環(huán)體;l 循環(huán)體有可能一次也不執(zhí)行;l 循環(huán)體可以為任意類型的語句;l 什么條件下跳出循環(huán)?條件不成立(為假);循環(huán)體內(nèi)遇到:break return goto【例2】請用while編寫程序,求的值。main() { int i=1。 long sum=0。 while(i=1000) { sum=sum+i。 i++。 } printf(sum=%ld,sum)。 getch()。 }【例3】求n!(n=18)main() { int i=1。 long sum=1。 while(i=8) { sum=sum*i。 i++。 } printf(sum=%ld,sum)。 getch()。 } dowhile語句一般的形式:do{循環(huán)體}while表達(dá)式。(千萬不要忘記我;)【例4】請用dowhile編寫程序,求的值。main() { int i=1。 long sum=0。 do{ sum=sum+i。 i++。 }while(i=1000)。 printf(sum=%ld,sum)。 getch()。 }注意:在使用while和dowhile語句執(zhí)行同一個任務(wù)時,要注意初始條件。對于while語句來說,有可能一次循環(huán)也不執(zhí)行;但對于dowhile語句來說,不管初始條件成不成立,均至少執(zhí)行一次?!纠?】請比較以下程序程序一:main() { int i=1001。 long sum=0。 while(i=1000) { sum=sum+i。 i++。 } printf(sum=%ld,sum)。 getch()。 }程序二:main() { int i=1001。 long sum=0。 do{ sum=sum+i。 i++。 }while(i=1000)。 printf(sum=%ld,sum)。 getch()。 }【例6】統(tǒng)計輸入的整數(shù)個數(shù)(遇到1時結(jié)束,1不在統(tǒng)計之列)程序一:用dowhilemain(){ int num。 int sum=0。 do{ printf(please input a number:)。 scanf(%d,amp。num)。 sum++。 }while(num!=1)。 printf(sum=%d,sum1)。 getch()。}程序二:用whilemain(){ int num。 int sum=0。 while(num!=1) { printf(please input a number:)。 scanf(%d,amp。num)。 sum++。 } printf(sum=%d,sum1)。 getch()。} for語句一般形式:for(expr1。expr2。expr3)語句【例7】請用for編寫程序,求的值。main(){ int i。 long sum=0。 for(i=0。i=1000。i++) sum=sum+i。 printf(sum=%ld,sum)。 getch()。}特別提醒:l for中的expr1expr3類型任意,均可以省略,但是。不能省略for(。)。l for可以轉(zhuǎn)換為while或者do while。l expr1時初始化表達(dá)式,expr2是條件表達(dá)式,expr3是修正表達(dá)式;l 注意for的多樣性;【例8】編寫程序,在屏幕上輸出26個字母(小寫)第一種形式:第二種形式:(省略expr1)include main(){ int i。 for(i=0。i26。i++) printf(%c,39。a39。+i)。 getch()。}include main(){ int i=0。 for(。i26。i++) printf(%c,39。a39。+i)。 getch()。}第三種形式:(省略expr3,expr1)第四種形式:(省略expr1,打印語句)include main(){ int i=0。 for(。i26。) printf(%c,39。a39。+(i++))。 getch()。}include main(){ int i=0。 for(。i26。putchar(39。a39。+i),i++)。(注意空語句) getch()。}循環(huán)嵌套 所謂循環(huán)嵌套,是指循環(huán)體中包含循環(huán)語句。在嵌套的過程中,三種循環(huán)語句可以互相嵌套,層數(shù)不限。外循環(huán)可以包含多個內(nèi)循環(huán),但是不能交叉?!纠?】在屏幕上打印5行5列的“*”。第一種:用forinclude main(){ int row,col。 for(row=1。row=5。row++) {for(col=1。col=5。col++) printf(*)。 printf(\n)。 } getch()。}第二種:用whileinclude main(){ int row=1,col=1。 while(row=5) { while(co