C語言程序設(shè)計第3章C語言控制語句.ppt
《C語言程序設(shè)計第3章C語言控制語句.ppt》由會員分享,可在線閱讀,更多相關(guān)《C語言程序設(shè)計第3章C語言控制語句.ppt(112頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第3章C語言控制語句,C語言程序設(shè)計,2020/4/25,本章介紹數(shù)據(jù)輸出數(shù)據(jù)輸入順序結(jié)構(gòu)程序設(shè)計分支結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計,2020/4/25,程序的三種基本結(jié)構(gòu),順序結(jié)構(gòu),N-S結(jié)構(gòu)圖,流程圖,選擇結(jié)構(gòu),2020/4/25,程序的三種基本結(jié)構(gòu),循環(huán)結(jié)構(gòu),直到型循環(huán),當(dāng)型循環(huán),N-S結(jié)構(gòu)圖,流程圖,2020/4/25,3.1結(jié)構(gòu)化程序設(shè)計,3種基本結(jié)構(gòu)特點:只有一個入口和一個出口結(jié)構(gòu)內(nèi)的每一個框都有機會被執(zhí)行結(jié)構(gòu)內(nèi)沒有死循環(huán)僅包含3種基本結(jié)構(gòu)的程序稱為結(jié)構(gòu)化程序,2020/4/25,3.2順序結(jié)構(gòu)程序設(shè)計,主要內(nèi)容:字符輸出函數(shù)格式輸出函數(shù)字符輸入函數(shù)格式輸入函數(shù)順序結(jié)構(gòu)程序設(shè)計舉例,2020/4/25,3.2.1字符輸出函數(shù),函數(shù)調(diào)用的一般形式putchar(ch)功能:在標(biāo)準(zhǔn)輸出設(shè)備(即顯示器屏幕)上輸出一個字符。,例如:putchar(b);putchar(n);putchar(101);putchar(st);,輸出:b輸出:回車換行輸出:A,2020/4/25,說明,putchar是C語言的標(biāo)準(zhǔn)庫函數(shù),使用時必須加編譯預(yù)處理命令:#includestdio.h或#include【例3.1】利用putchar函數(shù)輸出字符。,#includestdio.hmain()charc1,c2;c1=a;c2=b;putchar(c1);putchar(c2);putchar(n);putchar(c1-32);putchar(c2-32);putchar(n);,輸出結(jié)果:abAB,2020/4/25,3.2.2格式輸出函數(shù),函數(shù)調(diào)用的一般形式printf(格式控制字符串,輸出表列)功能:按格式控制所指定的格式,在標(biāo)準(zhǔn)輸出設(shè)備上輸出輸出表列各項的值。,例如有程序段:inta=123,b=100;printf(%d%d%dn,a,b,a+b);printf(c=%d+%d=%dn,a,b,a+b);,2020/4/25,2020/4/25,格式控制字符串,用雙引號括起的字符串,用于指定輸出數(shù)據(jù)的類型、格式、個數(shù)包括:非格式字符和格式字符,照原樣輸出,printf(c=%d+%d=%dn,a,b,a+b);,格式字符:指定輸出3個十進(jìn)制整型數(shù),分別為變量a、b、ab的值,2020/4/25,輸出格式說明符,在和格式符之間可以使用附加說明符,2020/4/25,附加格式說明符,例如:%ld輸出十進(jìn)制長整型數(shù)%m.nf右對齊,m位域?qū)挘琻位小數(shù)或n個字符%-m.nf左對齊,2020/4/25,例3.2整型數(shù)據(jù)的輸出,main()inta=11,b=22;intm=-1;longn=123456789;printf(%d%dn,a,b);printf(a=%d,b=%dn,a,b);printf(m:%d,%o,%x,%un,m,m,m,m);printf(n=%dn,n);printf(n=%ldn,n);,程序輸出:1122a=11,b=22m:-1,37777777777,ffffffff,4294967295n=123456789n=123456789,VC+環(huán)境下運行結(jié)果,2020/4/25,例3.3實型數(shù)據(jù)的輸出,main()floatx=1234.56,y=1.23456789;doublez=1234567.123456789;printf(x=%f,y=%fn,x,y);printf(z=%fn,z);printf(z=%en,z);printf(z=%18.8fn,z);printf(x=%10.3fn,x);printf(x=%-10.3fn,x);printf(x=%4.3fnn,x);,程序輸出:x=1234.560059,y=1.234568z=1234567.123457z=1.23457e+06z=1234567.12345679x=1234.560 x=1234.560 x=1234.560,2020/4/25,例3.4字符型數(shù)據(jù)的輸出,main()intm=97;charch=B;printf(m:%d%cn,m,m);printf(ch:%d%cn,ch,ch);printf(%sn,student);printf(%10sn,student);printf(%-10sn,student);printf(%10.3sn,student);printf(%.3snn,student);,程序輸出:m:97ach:66Bstudentstudentstudentstustu,2020/4/25,注意:,printf函數(shù)格式控制中的格式字符與輸出表列參數(shù)的個數(shù)和類型必須一一對應(yīng)。格式說明符的%和后面的描述符之間不能有空格。長整型數(shù)應(yīng)該用ld(或lo、lx、lu)格式輸出,否則會出現(xiàn)輸出錯誤。printf函數(shù)的參數(shù)可以是常量、變量或表達(dá)式。,2020/4/25,3.2.3字符輸入函數(shù),函數(shù)調(diào)用的一般形式getchar()功能:從標(biāo)準(zhǔn)輸入設(shè)備(即鍵盤)上輸入一個字符。,例如:getchar();c=getchar();printf(%cn,getchar();,2020/4/25,例如:,【例3.5】getchar函數(shù)的應(yīng)用。,#includestdio.hmain()charch;ch=getchar();printf(%c%dn,ch,ch);printf(%c%dn,ch-32,ch-32);,程序運行時輸入:m并按回車鍵后輸出結(jié)果是:m109M77,2020/4/25,說明:,getchar是C語言的標(biāo)準(zhǔn)庫函數(shù),使用時必須加編譯預(yù)處理命令:#includestdio.h或#includegetchar函數(shù)需要交互輸入,接收到輸入字符之后才繼續(xù)執(zhí)行程序。連續(xù)使用getchar函數(shù)時,要注意字符的輸入形式,例如執(zhí)行如下程序段:,charch1,ch2;ch1=getchar();ch2=getchar();,必須連續(xù)輸入兩個字符,中間不能有其他字符,2020/4/25,3.2.4格式輸入函數(shù),函數(shù)調(diào)用的一般形式scanf(格式控制字符串,地址表列);功能:按格式控制指定的格式,從標(biāo)準(zhǔn)輸入設(shè)備(即鍵盤)交互輸入數(shù)據(jù),并依次存放到對應(yīng)地址表列參數(shù)指定的變量中(即將輸入值賦給變量)。例如:scanf(%d%f,2020/4/25,格式控制字符串,用雙引號括起的字符串,用于指定輸入數(shù)據(jù)的類型、格式、個數(shù)以及輸入的形式包括:非格式字符和格式字符,照原樣輸入,scanf(a=%d,b=%d,格式字符:指定輸入2個十進(jìn)制整型數(shù)賦給變量a和b,2020/4/25,輸入格式說明符,在和格式符之間可以使用附加說明符,2020/4/25,附加格式說明符,例如:%ld、%lo輸入十進(jìn)制、八進(jìn)制長整型數(shù)%lf、%le輸入雙精度實型數(shù)%mf輸入m位數(shù)(域?qū)挘?*d忽略輸入的一個整型數(shù),此變量接收下一個數(shù)據(jù),對float和double型指整數(shù)位數(shù)+小數(shù)點+小數(shù)位數(shù),2020/4/25,例如:,scanf(%d%d%d,輸入的形式是:a=32,b=28(普通字符要照原樣輸入),2020/4/25,程序舉例,例1:格式控制串中分隔符的應(yīng)用。main()inta,b,c,d;scanf(%d%d,運行時輸入:123,4輸出:,可以這樣輸入嗎?123,4輸出:1,2,3,4,1,2,3,4,2020/4/25,例2:c格式符的使用。,main()charc1,c2,c3;scanf(%c%c,運行時輸入:ABC輸出:?,思考:若輸入:AB(回車)C輸出:?,2020/4/25,例3:f格式符的使用。,main()floatx,y;doublez;scanf(%f,運行時輸入:531.56212.345678.315輸出:,注意:float型7位有效,double型1516位有效。,x=531.562012,y=12.345000,z=678.31000000,2020/4/25,例4s格式符的使用。,main()chara10,b10;scanf(%s%s,a,b);printf(%sn%sn,a,b);,運行時輸入:Howdoyoudo!輸出:Howdo,2020/4/25,例5抑制符的使用。,main()inta,b;scanf(“%2d%*3d%2d”,輸入:1234567輸出:?,a=12b=67,2020/4/25,使用scanf函數(shù)應(yīng)注意:,要求在程序運行中輸入數(shù)據(jù),輸入的數(shù)據(jù)個數(shù)和類型必須與格式說明符一一對應(yīng)。地址參數(shù)形式:b=a;,?,正確的交換方法:,123,78,123,c=a;,a=b;,b=c;,2020/4/25,程序:,main()inta,b,c;printf(ninputa,b:);scanf(%d,%d,程序運行情況如下:inputa,b:32,57beforeexchange:a=32b=57afterexchange:a=57b=32,2020/4/25,舉例(補充),【例3.6】已知三條邊a、b、c,求三角形面積。計算三角形面積的海倫公式:,其中:,設(shè)定義:整型變量a、b、c實型變量s、area,2020/4/25,程序如下:,#includemath.hmain()inta,b,c;floats,area;scanf(%d,%d,%d,程序運行情況如下:3,4,5area=6.000,實際上還需要判斷a、b、c是否能構(gòu)成三角形,即應(yīng)該進(jìn)行選擇判斷處理,2020/4/25,舉例(補充),【例3.7】從鍵盤輸入兩個整數(shù),輸出它們相除的余數(shù)及商(要求保留2位小數(shù))。,例如輸入的m和n分別為100和18,輸出形式為:mn10m/n=5.56,main()intm,n;printf(ninputm,n:);scanf(%d,%d,2020/4/25,舉例:,【例3-12】輸入時間(時、分、秒),然后打印輸出共計多少秒?,分析:,2020/4/25,程序如下:,#includevoidmain()shorthour,min,sec;longtotal;printf(%nEnterhour:min:sec:);scanf(%d:%d:%d,程序運行情況如下:Enterhour:min:sec:3:10:50Thetotalsecond=11450,思考:total的數(shù)據(jù)類型如何處理?,2020/4/25,40,提出問題:,自然語言:如果則否則C語言:分支語句,?,問題1:如何根據(jù)收入,確定他的納稅比例及納稅額?,?,問題2如何根據(jù)學(xué)生的分?jǐn)?shù)判斷是否及格?,2020/4/25,41,3.3分支結(jié)構(gòu)程序設(shè)計,3.3.1if條件分支語句3.3.2switch多路開關(guān)語句,2020/4/25,42,單分支語句,語句一般格式if(表達(dá)式)語句,功能:計算表達(dá)式的值,如果是一個非0值(即邏輯真),就執(zhí)行內(nèi)嵌語句,否則(即邏輯假)跳過內(nèi)嵌語句,順序執(zhí)行后續(xù)語句。,2020/4/25,43,單分支語句的算法:,例如:if(x0)m+;if(ab)c=a;a=b;b=c;,2020/4/25,44,雙分支語句,語句一般格式if(表達(dá)式)語句1else語句2功能:計算表達(dá)式的值,如果它的值是一個非0值(邏輯真),就執(zhí)行內(nèi)嵌語句1,之后跳過內(nèi)嵌語句2,執(zhí)行后續(xù)語句;否則跳過內(nèi)嵌語句1,執(zhí)行內(nèi)嵌語句2,之后執(zhí)行后續(xù)語句。,2020/4/25,45,雙分支語句的算法:,例如:if(x0)m+;elsem-;if(ch=a,2020/4/25,46,多分支語句,語句一般格式if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2elseif(表達(dá)式n-1)語句n-1else語句n功能:依次計算并判斷表達(dá)式i,為非0時執(zhí)行后面的語句,都為0時,執(zhí)行語句n無論執(zhí)行完哪個語句分支,都轉(zhuǎn)到后續(xù)語句,2020/4/25,47,多重分支語句的算法,流程圖,表達(dá)式n-1?,2020/4/25,48,多重分支語句的算法,N-S結(jié)構(gòu)圖,例如:if(a=Aprintf(EnterintegerXandY:);scanf(%d%d,應(yīng)該正確判斷:if的內(nèi)嵌語句if和else的配對,if(x!=y)if(xy)printf(XYn);elseprintf(XYn);elseprintf(X=Yn);,提倡縮格書寫有利于閱讀程序,2020/4/25,55,雙(或多)分支if語句的嵌套形式if(表達(dá)式)if語句elseif語句,if語句嵌套的形式,單if語句的嵌套形式if(表達(dá)式)if語句,可以是各種形式的if語句,可以是各種形式的if語句,如果是簡單if語句,必須用“”括起,2020/4/25,56,if(c=50)printf(50150n);if(c=50)printf(50=c=100n);elseprintf(c50n);,例如:,if(c=50)printf(50=cc)if(ad)flag=1;elseflag=2;elseflag=3;,if(ab)if(ac)if(ad)flag=1;elseflag=2;elseflag=3;,flag=3的條件:,flag=3的條件:,當(dāng)cab時,當(dāng)ab時,例如:,2020/4/25,58,舉例,【例3.10】輸入一個數(shù),判斷它是奇數(shù)還是偶數(shù),如果是奇數(shù)則進(jìn)一步判斷它是否為5的倍數(shù)。,x%2!=0?,x%5等于0?,2020/4/25,59,程序:,main()intx;scanf(%d,等價于if(x%2).,等價于if(!(x%5).,2020/4/25,60,學(xué)習(xí)if語句的難點,正確用表達(dá)式描述條件例如:當(dāng)x大于5小于10時令x自增if(5x10)x+;,ifelse語句的配對正確判斷內(nèi)嵌語句例如:if(xy)x=x+3;y=y-2;elsex=x-3;y=y+2;,2020/4/25,61,選擇結(jié)構(gòu)舉例,【例3.13】輸入年份,判別該年是否為閏年。,思路:年份year為閏年的條件為能夠被4整除,但不能被100整除的年份;能夠被400整除的年份。只要滿足任意一個就可以確定它是閏年。例如:1996年、2008年是閏年2006年、1900年不是閏年,設(shè)定標(biāo)志變量leap,只要符合其中一個條件的就是閏年,令leap=1;否則令leap=0,2020/4/25,62,算法:,year%4=0scanf(%d,2020/4/25,64,3.3.2switch多路開關(guān)語句,switch語句的一般形式switch(表達(dá)式)case常量表達(dá)式1:語句序列1case常量表達(dá)式2:語句序列2case常量表達(dá)式n:語句序列ndefault:語句序列n+1功能:計算表達(dá)式的值,與常量表達(dá)式的值比較,等于第i個值時,順序執(zhí)行語句序列i、i+1、n+1若與所有常量表達(dá)式值都不相等,執(zhí)行語句序列n+1。,2020/4/25,65,switch語句的算法描述,例如:switch(a)case5:printf(,當(dāng)a等于5,輸出:default:printf($);case5:printf(,當(dāng)a等于2,輸出:#$break;,當(dāng)a等于2,輸出:#當(dāng)a等于5,輸出:charop;op=getchar();switch(op)case+:z=x+y;break;case-:z=x-y;break;case*:z=x*y;break;case/:z=x/y;break;default:z=0;if(int)z!=0)printf(%f%c%f=%fn,x,op,y,z);elseprintf(%cisnotanoperatorn,op);,實型數(shù)通常不使用z=0或z!=0的比較可用if(int)z)代替,2020/4/25,69,注意:,switch語句的書寫格式:語句體本身必須用花括號括起;case和default后面如果有多條語句,則不必加花括號;case和常量表達(dá)式之間必須有空格;default可以寫在語句體的任何位置,也可以省略。break語句可以改變case的語句標(biāo)號作用,終止后續(xù)case語句序列的執(zhí)行。switch語句和break語句結(jié)合,可以實現(xiàn)程序的選擇控制。允許switch嵌套使用,但同一個switch語句中,任意兩個case的常量表達(dá)式值不能相同。,2020/4/25,70,3.4循環(huán)結(jié)構(gòu)程序設(shè)計,while循環(huán)控制do-while循環(huán)控制for循環(huán)控制循環(huán)的嵌套,2020/4/25,71,3.4.1while循環(huán)控制,語句一般格式while(表達(dá)式)語句,一般為關(guān)系表達(dá)式或邏輯表達(dá)式,也可以是C語言其他類型的合法表達(dá)式用來控制循環(huán)體是否執(zhí)行,稱為內(nèi)嵌語句,可以是基本語句、控制語句,也可以是復(fù)合語句是循環(huán)重復(fù)執(zhí)行的部分,2020/4/25,72,功能:,計算表達(dá)式的值,當(dāng)為非0(邏輯真)時,執(zhí)行內(nèi)嵌語句,每執(zhí)行一次,就判斷一次表達(dá)式的值,當(dāng)表達(dá)式的值為0時結(jié)束循環(huán),轉(zhuǎn)去執(zhí)行while后面的語句。,循環(huán)控制條件,循環(huán)體,2020/4/25,73,例如:,【例3.14】編寫程序,求100個自然數(shù)的和即:s=1+2+3+100,思路:尋找加數(shù)與求和的規(guī)律,加數(shù)i從1變到100,每循環(huán)一次,使i增1,直到i的值超過100。i的初值設(shè)為1。求和設(shè)變量sum存放和,循環(huán)求sum=sum+i,直至i超過100。,2020/4/25,74,算法和程序:,main()inti,sum;i=1;sum=0;while(i=100)sum=sum+i;i+;printf(sum=%dn,sum);,程序輸出結(jié)果:sum=5050,i:循環(huán)控制變量sum:累加器,2020/4/25,75,注意:,如果(表達(dá)式)值為0,則循環(huán)體一次也不執(zhí)行(例如當(dāng)i的初值為101)。在循環(huán)體中必須有使循環(huán)趨向結(jié)束的操作,否則循環(huán)將無限進(jìn)行(死循環(huán))。在循環(huán)體中,語句的先后位置必須符合邏輯,否則會影響運算結(jié)果。,思考如下的輸出?while(i=100)i+;sum=sum+i;printf(sum=%dn,sum);,運行后,輸出:sum=5150原因是什么?如何修改程序使結(jié)果正確?,2020/4/25,76,其他的while語句形式,while(0).由于表達(dá)式恒等于0,所以循環(huán)體永遠(yuǎn)也不會執(zhí)行,是一個邏輯錯誤的語句,while(1).由于表達(dá)式恒等于1,所以不可能通過循環(huán)控制條件來結(jié)束循環(huán)體的執(zhí)行,即死循環(huán)。為了保證循環(huán)正常運行,應(yīng)該特別注意:循環(huán)控制條件的描述控制條件的初始狀態(tài)(初始值)循環(huán)體內(nèi)部對控制條件的影響,2020/4/25,77,3.4.2do-while語句,語句一般格式do語句while(表達(dá)式);功能:先執(zhí)行內(nèi)嵌語句(循環(huán)體),之后計算表達(dá)式的值,不為0(邏輯真)時,再執(zhí)行循環(huán)體并判斷條件,直到表達(dá)式的值為0結(jié)束循環(huán),轉(zhuǎn)去執(zhí)行while下面的語句。,2020/4/25,78,do-while循環(huán)的算法,N-S結(jié)構(gòu)圖,main()inti=1,sum=0;dosum=sum+i;i+;while(i=100);printf(%dn,sum);,用do-while語句求1+2+100,2020/4/25,79,說明:,while和do-while都能實現(xiàn)循環(huán)控制,while結(jié)構(gòu)程序通常都可以轉(zhuǎn)換成do-while結(jié)構(gòu),區(qū)別:do-while語句先執(zhí)行循環(huán)體再判斷條件,循環(huán)體至少執(zhí)行一次;while語句先判斷條件再執(zhí)行循環(huán)體,循環(huán)體有可能一次也不執(zhí)行dowhile循環(huán)體中一定要有能使表達(dá)式值趨于0的操作(如i+),否則會出現(xiàn)死循環(huán)。,2020/4/25,80,3.4.3for語句,語句一般格式for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句,功能:計算表達(dá)式1的值,再判斷表達(dá)式2,如果其值為非0(邏輯真),則執(zhí)行內(nèi)嵌語句(循環(huán)體),并計算表達(dá)式3;之后再去判斷表達(dá)式2,一直到其值為0時結(jié)束循環(huán),執(zhí)行后續(xù)語句。,循環(huán)初始條件,循環(huán)控制條件,循環(huán)體,2020/4/25,81,for語句的算法,例如:main()inti,sum;for(sum=0,i=1;i=100;i+)sum=sum+i;printf(sum=%dn,sum);,可部分或全部省略,但“;”不可省略,2020/4/25,82,省略for語句的表達(dá)式,表達(dá)式1、2、3全省略,即:for(;)等同于:while(1),會無限循環(huán)(死循環(huán)),注意:在省略某個表達(dá)式時,應(yīng)在適當(dāng)位置進(jìn)行循環(huán)控制的必要操作,以保證循環(huán)的正確執(zhí)行,省略表達(dá)式1和表達(dá)式3,即:for(;表達(dá)式2;)等同于:while(表達(dá)式2)省略表達(dá)式2,即:for(表達(dá)式1;表達(dá)式3)等同于:表達(dá)式1;while(1)表達(dá)式3;,2020/4/25,83,例如:,i=1;for(;i100)for(i=1;i100)i+;,2020/4/25,84,說明:,所有用while語句實現(xiàn)的循環(huán)都可以用for語句實現(xiàn)。,等價于:,for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句;,表達(dá)式1;while(表達(dá)式2)語句;表達(dá)式3;,2020/4/25,85,for語句的簡單應(yīng)用,【例3.16】求n!,即計算p=123n的值。,思路:求階乘與求累加的運算處理過程類似,只要將“+”變?yōu)椤?”。,設(shè)置:乘數(shù)i,初值為1,終值為n(n是循環(huán)控制終值,需要從鍵盤輸入)累乘器p,每次循環(huán)令p=p*i,2020/4/25,86,程序:,main()inti,n;longp;p=1;printf(Entern:);scanf(%d,思考:如何求s=1!+2!+n!?,2020/4/25,87,3.4.43種循環(huán)語句的比較,while和do-while語句的表達(dá)式只有一個,for語句有三個。while和for先判斷循環(huán)條件后執(zhí)行循環(huán)體,do-while語句先執(zhí)行循環(huán)體后判斷循環(huán)條件。,while語句多用于循環(huán)次數(shù)不定的情況do-while語句多用于至少要運行一次的情況for語句多用于要賦初值或循環(huán)次數(shù)固定的情況,2020/4/25,88,3.4.5循環(huán)的嵌套,如果循環(huán)語句的循環(huán)體內(nèi)又包含了另一條循環(huán)語句,則稱為循環(huán)的嵌套例如:,#includemain()inti,j;for(i=1;i10;i+)for(j=1;j=i;j+)printf(j=i)?%4dn:%4d,i*j);,外循環(huán)語句,內(nèi)循環(huán)語句,外循環(huán)體,內(nèi)循環(huán)體,2020/4/25,89,例如:,#includemain()inti,j;for(i=1;i10;i+)for(j=1;j=i;j+)printf(%4d,i*j);printf(n);,外循環(huán)語句,內(nèi)循環(huán)語句,外循環(huán)體,內(nèi)循環(huán)體,3.4.5循環(huán)的嵌套,2020/4/25,90,運行結(jié)果:,12436948121651015202561218243036714212835424981624324048566491827364554637281,2020/4/25,91,注意:,while、do-while、for循環(huán)語句可以并列,也可以相互嵌套,但要層次清楚,不能出現(xiàn)交叉。多重循環(huán)程序執(zhí)行時,外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)都需要循環(huán)執(zhí)行多次。例如:,for(a=1;a=10;a+)for(b=0;b=5;b+),外循環(huán)執(zhí)行了10次,內(nèi)循環(huán)執(zhí)行6次循環(huán)正常結(jié)束時,內(nèi)循環(huán)執(zhí)行了106=60次,2020/4/25,92,3.5break和continue語句,結(jié)構(gòu)化程序設(shè)計中有如下2種語句實現(xiàn)跳轉(zhuǎn):continue語句break語句在循環(huán)語句的循環(huán)體中使用,可以進(jìn)行循環(huán)的流程控制,2020/4/25,93,3.5.1break語句,功能:利用break語句能夠強迫終止本層循環(huán),轉(zhuǎn)到后續(xù)語句執(zhí)行。,2020/4/25,94,3.5.1break的應(yīng)用,break;,while語句,break;,do-while語句,break;,for語句,2020/4/25,95,例如:,intx,n=0,s=0;while(n10)scanf(%d,intx,n=0,s=0;doscanf(%d,for(n=0,s=0;n10;n+)scanf(%d,2020/4/25,96,3.5.2continue語句及應(yīng)用,功能:中斷循環(huán)體的本次執(zhí)行(即跳過循環(huán)體中尚未執(zhí)行的語句),立即開始執(zhí)行下一次循環(huán)。,2020/4/25,97,3.5.2continue語句及應(yīng)用(續(xù)),continue;,while語句,continue;,do-while語句,continue;,for語句,2020/4/25,98,例如:,intx,n=0,s=0;while(n10)scanf(%d,intx,n=0,s=0;doscanf(%d,for(n=0,s=0;n10;)scanf(%d,n+,2020/4/25,99,應(yīng)用舉例,【例3.17】把100200之間能被7整除的數(shù),以十個數(shù)為一行的形式輸出,最后輸出一共有多少個這樣的數(shù)。,思路:設(shè)變量n,從100變化到200;對每個n進(jìn)行判斷,當(dāng)n不能被7整除時,終止本次循環(huán),否則就輸出這個數(shù);設(shè)變量j作為輸出個數(shù)的計數(shù)器,每輸出一個數(shù)就令j+;當(dāng)輸出了10個數(shù)時(即j%10等于0),輸出n退出循環(huán)后輸出j的值。,2020/4/25,100,算法和程序,main()intn,j=0;for(n=100;n=70,改進(jìn),實際的游戲需要參加者不斷根據(jù)給出的結(jié)論修改價格值,并期待最終猜中價格加上循環(huán)控制,直到猜中正確價格退出對于密碼輸入,考慮到不小心按錯鍵等情況,允許用戶3次輸入密碼進(jìn)行驗證,2020/4/25,改進(jìn)后源代碼,2020/4/25,#include“stdio.h”voidmain()intPassword=0,Number=0,price=58,i=0;while(Password!=1234)if(i=3)return;i+;puts(PleaseinputPassword:);scanf(%d,改進(jìn)后源代碼,2020/4/25,if(Number=90)printf(Toobigger!Pressanykeytotryagain!n);elseif(Number=70,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語言程序設(shè)計 語言 控制 語句
鏈接地址:http://www.szxfmmzy.com/p-11495418.html