版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第3章章 結構化程序設計結構化程序設計第第1章章 C語言概述語言概述第第2章章 基本數(shù)據(jù)類型和運算基本數(shù)據(jù)類型和運算第第3章章 結構化程序設計結構化程序設計第第5章章 函數(shù)函數(shù)第第6章章 指針指針第第7章章 復合結構類型復合結構類型第第8章章 編譯預處理編譯預處理第第4章章 數(shù)組及字符串數(shù)組及字符串課程概述課程概述 附錄附錄3.1 結構化程序設計的思想及流結構化程序設計的思想及流程圖程圖3.2 結構化程序設計的三種基本結構化程序設計的三種基本結構結構3.3 幾種轉移控制語句幾種轉移控制語句3.4 C程序語句程序語句3.5 C程序舉例程序舉例3.6 本章容易出現(xiàn)錯誤的知識點本章容易出現(xiàn)錯誤的知
2、識點總結(選學)總結(選學) 第第9章章 位運算位運算第第10章章 文件文件結構化程序設計結構化程序設計第第3章章教學目標教學目標 了解結構化程序設計的思想及流程圖的畫了解結構化程序設計的思想及流程圖的畫法法 掌握順序結構、選擇結構、循環(huán)結構的程掌握順序結構、選擇結構、循環(huán)結構的程序設計方法序設計方法 掌握控制轉移語句掌握控制轉移語句break、continue的使用的使用 編制出簡單的編制出簡單的C程序。程序。3.1.1 結構換程序設計思想結構換程序設計思想結構化程序設計結構化程序設計 (Structured Programming)的核心的核心是算法設計,基本思想是采用自頂向下、逐步細化的
3、是算法設計,基本思想是采用自頂向下、逐步細化的設計方法和單入單出的控制結構。設計方法和單入單出的控制結構。自頂向下和逐步細化的設計方法是將一個復雜任務自頂向下和逐步細化的設計方法是將一個復雜任務按照功能進行拆分,并逐層細化到便于理解和描述的按照功能進行拆分,并逐層細化到便于理解和描述的程度,最終形成由若干獨立模塊組成的樹狀層次結構,程度,最終形成由若干獨立模塊組成的樹狀層次結構,單入單出的控制結構是指每個模塊內部均用順序、單入單出的控制結構是指每個模塊內部均用順序、選擇、循環(huán)三種基本結構來描述。選擇、循環(huán)三種基本結構來描述。3.1 結構程序設計的思想及流程圖結構程序設計的思想及流程圖傳統(tǒng)流程圖
4、傳統(tǒng)流程圖 傳統(tǒng)流程圖是用一些圖框表示各種操作,如圖所示。傳統(tǒng)流程圖是用一些圖框表示各種操作,如圖所示。N-S流程圖流程圖3.1.2 流程圖流程圖3.1 結構程序設計的思想及流程圖結構程序設計的思想及流程圖(d)執(zhí)行框執(zhí)行框(b) 輸入輸出框輸入輸出框(c)判斷框判斷框(a)(a)起止框起止框(e)連接點連接點(f)流程線流程線 傳統(tǒng)流程圖傳統(tǒng)流程圖 順序結構、選擇結構和循環(huán)結構的傳統(tǒng)流程圖的示順序結構、選擇結構和循環(huán)結構的傳統(tǒng)流程圖的示意如圖所示。意如圖所示。N-S流程圖流程圖3.1.2 流程圖流程圖3.1 結構程序設計的思想及流程圖結構程序設計的思想及流程圖(a)順序結構 S1S2S1S2
5、條件條件S1(b)選擇結構 (c)循環(huán)結構 傳統(tǒng)流程圖傳統(tǒng)流程圖 N-S圖是將全部算法寫在一個矩形框內,在該框內還圖是將全部算法寫在一個矩形框內,在該框內還可以包含其他的從屬于它的框??梢园渌膹膶儆谒目?。順序結構、選擇結構順序結構、選擇結構和循環(huán)結構的和循環(huán)結構的N-S流程圖的示意如圖所示。流程圖的示意如圖所示。N-S流程圖流程圖3.1.2 流程圖流程圖3.1 結構程序設計的思想及流程圖結構程序設計的思想及流程圖ABP真假ABA當P成立A直到P成立(a)順序結構(b)選擇結構 (c)當型循環(huán)(d)直到型循環(huán)順序結構是程序中的語句按照書寫的順順序結構是程序中的語句按照書寫的順序,自上而下
6、地執(zhí)行。序,自上而下地執(zhí)行。其特點是程序總是從第其特點是程序總是從第1條語句開始執(zhí)條語句開始執(zhí)行,依次執(zhí)行完所有的語句后結束程序。行,依次執(zhí)行完所有的語句后結束程序。3.2.1 順序結構順序結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構例例3.1輸入一個三位整數(shù),依次輸出該數(shù)的正輸入一個三位整數(shù),依次輸出該數(shù)的正(負)號和百位、十位、個位數(shù)字。(負)號和百位、十位、個位數(shù)字。下圖所示為對應的下圖所示為對應的N-S流程圖。流程圖。3.2.1 順序結構順序結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構輸入一個三位整數(shù)存入x中x0?真假c4= +c4= -x=|x
7、|c3=x%10+48c2=x%10+48x=x/10c1=x/10+48輸出c4、c1、c2、c3對應的內容代碼如下:代碼如下:3.2.1 順序結構順序結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構#includemain()char c1,c2,c3,c4;int x;scanf(%d,&x); /* 輸入一個三位的整數(shù)輸入一個三位的整數(shù) */c4=x0?+:-;/* 將將x的符號存入的符號存入c4 */x=abs(x); /* 求三位整數(shù)的絕對值求三位整數(shù)的絕對值 */c3=x%10+48; /* x%10獲得個位數(shù)字獲得個位數(shù)字,加加48后轉換為對應的字符后轉
8、換為對應的字符 */x=x/10;/* 獲得獲得x的前兩位的前兩位 */c2=x%10+48; /* x%10獲得十位數(shù)字獲得十位數(shù)字,加加48后轉換為對應的字符后轉換為對應的字符 */c1=x/10+48; /* x/10獲得百位數(shù)字獲得百位數(shù)字,加加48后轉換為對應的字符后轉換為對應的字符 */printf(%cn%cn%cn%cn,c4,c1,c2,c3);在運行時,從鍵盤輸入:在運行時,從鍵盤輸入: -345 則輸出為:則輸出為: - 3 4 5接著從鍵盤輸入:接著從鍵盤輸入: 678 則輸出為:則輸出為: + 6 7 8輸入三角形的三邊長,求三角形面積。輸入三角形的三邊長,求三角形面
9、積。 分析:給出三角形的三邊分析:給出三角形的三邊a、b、c,可根據(jù)公式,可根據(jù)公式area=(s(s-a)(s-b)(s-c)1/2計算該三角形的面積,其中計算該三角形的面積,其中s=(a+b+c)/2。下圖所示為對應的下圖所示為對應的N-S流程圖。流程圖。3.2.1 順序結構順序結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構輸入三角形的三條邊輸入三角形的三條邊a、b、c求三角形三邊和的一半求三角形三邊和的一半s=1.0/2*(a+b+c)計算三角形的面積計算三角形的面積area=sqrt(s*(s-a)*(s-b)*(s-c)輸出輸出a、b、c、s的值的值輸出三角形的面積
10、輸出三角形的面積area的值的值代碼如下:代碼如下:3.2.1 順序結構順序結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構#include main() float a,b,c,s,area; printf(please input three border of the triangle:); scanf(%f,%f,%f,&a,&b,&c); /*輸入三角形的三條輸入三角形的三條邊邊*/ s=1.0/2*(a+b+c); /*求三角形三邊和的一半求三角形三邊和的一半*/ area=sqrt(s*(s-a)*(s-b)*(s-c); /*按公式計算三
11、角形的面按公式計算三角形的面積積*/ printf(a=%-7.2fb=%-7.2fc=%-7.2fs=%-7.2fn,a,b,c,s); printf(area=%-7.2fn,area); 該程序的運行結果如下該程序的運行結果如下:please input three border of the triangle:3,4,5 a=3.00 b=4.00 c=5.00 s=6.00area=6.003.2.2 選擇結構選擇結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構1. if語句語句 2.switch語句語句if語句的語義是:如果表達式的值為真,則語句的語義是:如果表達式
12、的值為真,則執(zhí)行其后的語句,否則不執(zhí)行該語句。執(zhí)行其后的語句,否則不執(zhí)行該語句。語法格式為:語法格式為: if(表達式表達式) 語句語句1; 下一條語句下一條語句;if語句的流程圖如圖所示。語句的流程圖如圖所示。3.2.2 選擇結構選擇結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構下一條語句表達式語句序列表達式真假語句序列下一條語句(a) 傳統(tǒng)流程圖(b) N-S流程圖if語句語句1. if語句語句 2.switch語句語句例例3.3 單分支單分支if語句的應用舉例語句的應用舉例。#includemain() int m,n,max; printf(n input two n
13、umbers:); scanf(%d%d,&m,&n); /*輸入兩個整數(shù)輸入兩個整數(shù)*/ max=m; /*將將m的值賦給的值賦給max*/ if(max0) a=0;else a=-11;例如例如條件表達式真假語句1下一條語句(a) 傳統(tǒng)流程圖(b) N-S流程圖語句2下一條語句條件表達式語句2真假語句11. if語句語句 2.switch語句語句ifelse語語ifelse語句也可以表示為:語句也可以表示為:if(測試表達式測試表達式) 語句語句1; 語句語句2; else 語句語句n; 語句語句n+1; 3.2.2 選擇結構選擇結構3.2 結構程序設計的三種基本結構結構
14、程序設計的三種基本結構ifelseif(a0)b=a+b;a=0;c+;elsec=0;b=0;例如例如1. if語句語句 2.switch語句語句else if多向分支語句的格式如下:多向分支語句的格式如下:if(表達式(表達式1)語句)語句1;else if(表達式表達式2) 語句語句2;else if(表達式表達式3) 語句語句3; else if(表達式表達式n) 語句語句n;else 語句語句n+1;下一條語句下一條語句;這種這種if語句在執(zhí)行時,依次判斷表達式的值,語句在執(zhí)行時,依次判斷表達式的值,當出現(xiàn)某個值為真時,則執(zhí)行其對應的語句。當出現(xiàn)某個值為真時,則執(zhí)行其對應的語句。然后
15、跳到整個然后跳到整個if語句之外繼續(xù)執(zhí)行程序。語句之外繼續(xù)執(zhí)行程序。如果所有的表達式均為假,則執(zhí)行語句如果所有的表達式均為假,則執(zhí)行語句n+1。3.2.2 選擇結構選擇結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構else if語句語句1. if語句語句 2.switch語句語句多向分支語句的流程圖如圖所示多向分支語句的流程圖如圖所示。3.2.2 選擇結構選擇結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構else if語句語句表達式表達式3語句語句n+1表達式表達式1真真真真假假假假假假表達式表達式2語句語句1語句語句2語句語句n真真1. if語句語句 2.
16、switch語句語句例例3.4 輸入一個字符,如果是數(shù)字則輸出輸入一個字符,如果是數(shù)字則輸出A,如,如果是大寫字母則輸出果是大寫字母則輸出B;如果是小寫字母則輸出;如果是小寫字母則輸出C;如果是空格則輸出如果是空格則輸出D;如果是回車換行符則輸出;如果是回車換行符則輸出E,是其他符號時則輸出是其他符號時則輸出F。下圖下圖所示為對應的所示為對應的N-S流程圖。流程圖。3.2.2 選擇結構選擇結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構例例3.4輸入一個字符存入c中c=0&c=A&c=a&c=z真假輸出Cc= = 真假輸出D輸出Ec= =n真假輸出F1.
17、 if語句語句 2.switch語句語句3.2.2 選擇結構選擇結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構例例3.4程序如下:程序如下:#includemain() char c; scanf(%c,&c); if(0=c&c%cn,c,A);/*如果輸入的如果輸入的是數(shù)字是數(shù)字,則輸出字符則輸出字符A*/ else if(A=c&c%cn, c,B); /*如果輸入的是大寫字母如果輸入的是大寫字母,則輸出則輸出字符字符B*/ else if(a=c&c%cn, c,C);/*如果輸入的是小寫字母如果輸入的是小寫字母,則輸出字符則輸出字符C
18、*/ else if(c= ) printf(c=%c-%cn, c,D);/*如果輸入的是空格如果輸入的是空格,則輸出字符則輸出字符D*/1. if語句語句 2.switch語句語句3.2.2 選擇結構選擇結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構例例3.4 else if(c=n) printf(c=%c-%cn, c,E);/*如果輸入回車換行符則輸出字符如果輸入回車換行符則輸出字符E*/ else printf(c=%c- %cn, c,F);/*以上都不是以上都不是,則輸出字符則輸出字符F */程序運行情況如下所示:程序運行情況如下所示:5 c=5- AH c=
19、H- B& c=&- F1. if語句語句 2.switch語句語句switch語語句是多向句是多向分支選擇分支選擇語句,即語句,即根據(jù)多個根據(jù)多個條件表達條件表達式的值,式的值,從多個操從多個操作中選擇作中選擇一個滿足一個滿足條件的操條件的操作來執(zhí)行。作來執(zhí)行。其對應的其對應的流程圖如流程圖如圖所示。圖所示。3.2.2 選擇結構選擇結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構計算表達式計算表達式=常量表達式常量表達式2=常量表達式常量表達式n語句語句2語句語句n假假假假假假真真真真真真語句語句1=常量表達式常量表達式1語句語句n+11. if語句語句 2.
20、switch語句語句switch語句的一般格式為語句的一般格式為:switch(表達式)(表達式) case常量表達式常量表達式1: 語句語句1;break; case常量表達式常量表達式2: 語句語句2;break; case常量表達式常量表達式n: 語句語句n;break; default: 語句語句n+1;break;switch語句中的語句中的“表達式表達式”可以是任何類型,可以是任何類型,常用的是字符型或整型表達式。常用的是字符型或整型表達式。3.2.2 選擇結構選擇結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構break語句用來跳出語句用來跳出switch語句語句
21、。switch語句的執(zhí)行過程是:語句的執(zhí)行過程是:首先判斷表達式的值;然首先判斷表達式的值;然后在常量表達式后在常量表達式i(i=1,2,n)中找到與)中找到與表達式匹配的常量表達式,表達式匹配的常量表達式,并執(zhí)行該常量表達式后面并執(zhí)行該常量表達式后面對應的語句;若沒有找到對應的語句;若沒有找到與表達式匹配的常量表達與表達式匹配的常量表達式,則執(zhí)行式,則執(zhí)行default語句后語句后面的語句面的語句n+1。default語語句可以省略。句可以省略。1. if語句語句 2.switch語句語句#includemain() int x; printf(please input integer nu
22、mber(17):-); scanf(%d,&x);/*輸入一個輸入一個17之間的整數(shù)之間的整數(shù)*/ switch(x) /*輸出與所輸入的輸出與所輸入的x值相對應的日期名稱值相對應的日期名稱*/ case 1:printf(Mondayn);break;case 2:printf(Tuesdayn); break;case 3:printf(Wednesdayn); break;case 4:printf(Thursdayn); break;case 5:printf(Fridayn); break;case 6:printf(Saturdayn); break;case 7:pri
23、ntf(Sundayn); break;default:printf( you are wrong!n);3.2.2 選擇結構選擇結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構下面是上述程序的運行情況:下面是上述程序的運行情況:please input integer number(17):- 4 Thursday2. dowhile語句語句3. for語句語句1. while語句語句3.2.3 循環(huán)結構循環(huán)結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構while語句也稱為語句也稱為“當當”型循環(huán)控制語句型循環(huán)控制語句,其語句格式如下:其語句格式如下:whi
24、le(表達式表達式)語句語句;其中的其中的“表達式表達式”是循環(huán)條件,是循環(huán)條件,“語句語句”是是while的循環(huán)體的循環(huán)體。執(zhí)行過程是:計算表達式的值,當值為執(zhí)行過程是:計算表達式的值,當值為真(非真(非0)時,執(zhí)行循環(huán)體語句。)時,執(zhí)行循環(huán)體語句。特點是先判斷后執(zhí)行特點是先判斷后執(zhí)行。其流程圖如圖所示其流程圖如圖所示。 循環(huán)體語句(a) 傳統(tǒng)流程圖表達式表達式為真循環(huán)體語句(b) N-S流程圖真假2. dowhile語句語句3. for語句語句1. while語句語句3.2.3 循環(huán)結構循環(huán)結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構例例3.7 用用while語句來實現(xiàn)
25、語句來實現(xiàn)1*2*3*10的乘積。的乘積。#includemain()long int i=1,mul=1;while(i=10) /*用用while 語句語句求求1*2*3*10的乘積的乘積*/ mul=mul*i;i+;printf(n%ldn, mul);例例3.7該程序的運行結果如下:該程序的運行結果如下:36288002. dowhile語句語句3. for語句語句1. while語句語句3.2.3 循環(huán)結構循環(huán)結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構dowhile語句的一般形式為語句的一般形式為:do語句語句;while(表達式表達式);這個循環(huán)與這個循環(huán)與
26、while循環(huán)的不同在于:它先執(zhí)循環(huán)的不同在于:它先執(zhí)行循環(huán)中的語句,然后再判斷表達式是否為行循環(huán)中的語句,然后再判斷表達式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)止循環(huán)。dowhile循環(huán)至少要執(zhí)行一次循環(huán)語句。循環(huán)至少要執(zhí)行一次循環(huán)語句。對應的對應的流程圖如圖所示流程圖如圖所示。循環(huán)體語句(a) 傳統(tǒng)流程圖表達式表達式為真循環(huán)體語句(b) N-S流程圖真假2. dowhile語句語句3. for語句語句1. while語句語句3.2.3 循環(huán)結構循環(huán)結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構例例3.8 用用do whil
27、e語句來實現(xiàn)語句來實現(xiàn)1*2*3*10的乘積。的乘積。#includemain()long int i,mul=1;i=1;do /*用用dowhile語句求語句求1*2*3*10的乘積的乘積*/mul=mul*i;i+;while(i=10) ;printf(%ldn, mul);例例3.8該程序的運行結果如下:該程序的運行結果如下:36288002. dowhile語句語句3. for語句語句1. while語句語句3.2.3 循環(huán)結構循環(huán)結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構for語句的一般形式為語句的一般形式為: for(表達式表達式1;表達式表達式2;表達式
28、表達式3) 語句語句;其執(zhí)行過程為:先計算表達式其執(zhí)行過程為:先計算表達式1;再;再計算表達式計算表達式2,若其值為真(非,若其值為真(非0),),則執(zhí)行則執(zhí)行for語語常見的常見的for語句形式如下所示:語句形式如下所示: for(循環(huán)變量賦初值循環(huán)變量賦初值;循環(huán)條件循環(huán)條件;循環(huán)循環(huán)變量增值變量增值) 語句語句; 下面是一個關于下面是一個關于for語句的例子:語句的例子: mul=1; for(i=1;i=10;i+) mul=mul*i;對應的流程圖如圖所示。對應的流程圖如圖所示。計算表達式1(a) 傳統(tǒng)流程圖表達式2表達式2為真時循環(huán)體語句(b) N-S流程圖真假循環(huán)體語句計算表達式
29、3計算表達式1計算表達式32. dowhile語句語句3. for語句語句1. while語句語句3.2.3 循環(huán)結構循環(huán)結構3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構例例3.9 從鍵盤上輸入從鍵盤上輸入5個數(shù),求其平均個數(shù),求其平均值。值。對應的對應的N-S圖如圖所示。圖如圖所示。例例3.9定義整型變量a,浮點型變量b和sumfor(a=1,sum=0.0;a6;a+)輸入一個數(shù)并存入b中 sum+=b輸出平均值average=sum/52. dowhile語句語句3. for語句語句1. while語句語句3.2.3 循環(huán)結構循環(huán)結構3.2 結構程序設計的三種基本結構結構
30、程序設計的三種基本結構例例3.9 的程序代碼如下:的程序代碼如下:#includemain() int a; float b,sum; for(a=1,sum=0.0;a6;a+) printf(please input number:n); scanf(%f,&b); /*從鍵盤上輸入從鍵盤上輸入5個數(shù)個數(shù)*/ sum+=b; /*求輸入的求輸入的5個數(shù)的加和個數(shù)的加和*/ printf(average=%fn,sum/5);/*求求5個個數(shù)的平均值,并將其輸出數(shù)的平均值,并將其輸出*/例例3.9該程序的運行情況如下:該程序的運行情況如下:please input number:34
31、.4 please input number:28.1 please input number:56.2 please input number:71.9 please input number:32.7 average=44.6600012. 例例3.101. 循環(huán)的嵌套循環(huán)的嵌套3.2.4 循環(huán)的嵌套循環(huán)的嵌套3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構如果一個循環(huán)體中又含有另一個完整如果一個循環(huán)體中又含有另一個完整的循環(huán)結構,則稱為循環(huán)的嵌套。當?shù)难h(huán)結構,則稱為循環(huán)的嵌套。當內嵌的循環(huán)中含有另一個嵌套的循環(huán)內嵌的循環(huán)中含有另一個嵌套的循環(huán)時,稱為多重循環(huán)時,稱為多重循環(huán)
32、。while循環(huán)、循環(huán)、dowhile循環(huán)和循環(huán)和for循環(huán)循環(huán)三種結構可以互相嵌套。例如三種結構可以互相嵌套。例如:while() do for(;) while();2. 例例3.101. 循環(huán)的嵌套循環(huán)的嵌套3.2.4 循環(huán)的嵌套循環(huán)的嵌套3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構例例3.10 循環(huán)嵌套的舉例:將八進制數(shù)循環(huán)嵌套的舉例:將八進制數(shù)(07)以二進制的形式進行輸出。)以二進制的形式進行輸出。下圖所示為對應的下圖所示為對應的N-S流程圖。流程圖。for(m=0;m2;m+)for(n=0;n2;n+)for( k=0;k2;k+) 輸出m、n、k的值2. 例例
33、3.101. 循環(huán)的嵌套循環(huán)的嵌套3.2.4 循環(huán)的嵌套循環(huán)的嵌套3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構例例3.10 的程序代碼如下:的程序代碼如下:#includemain() int m, n, k; printf(m n kn); for(m=0; m2; m+) /*用三重循環(huán)輸出用三重循環(huán)輸出m、n、k的的8個組合值個組合值*/ for(n=0; n2; n+) for(k=0; k2; k+) printf(%d %d %dn, m, n, k);該程序的運行情況如下:該程序的運行情況如下:mnk000001010011100101110111for、whil
34、e和和dowhile循環(huán)一般情況下是可以互相代循環(huán)一般情況下是可以互相代替的,可以用來處理同一個問題替的,可以用來處理同一個問題。用用while和和dowhile循環(huán)時,循環(huán)變量初始化的操作應循環(huán)時,循環(huán)變量初始化的操作應在在while和和dowhile語句之前完成,而語句之前完成,而for語句可以在表語句可以在表達式達式1中或中或for語句的前面實現(xiàn)循環(huán)變量的初始化。語句的前面實現(xiàn)循環(huán)變量的初始化。3.2.5 幾種循環(huán)的總結幾種循環(huán)的總結3.2 結構程序設計的三種基本結構結構程序設計的三種基本結構2. 例例3.113. 注意事項注意事項1. 語句一般形式語句一般形式3.3.1 break語句
35、語句3.3 幾種轉移控制語句幾種轉移控制語句break語句的一般形式為:語句的一般形式為: break;通常情況下,在循環(huán)語句中通常情況下,在循環(huán)語句中break語句語句總是和總是和if語句連在一起使用,即滿足條語句連在一起使用,即滿足條件時便跳出循環(huán)。件時便跳出循環(huán)。2. 例例3.113. 注意事項注意事項1. 語句一般形式語句一般形式3.3.1 break語句語句3.3 幾種轉移控制語句幾種轉移控制語句例例3.11 break語句應用舉例語句應用舉例。#include main() int i; for(i=1;i10;i+) i=i+1; printf(%dn,i); if(i%2=0)
36、 /*如果如果i能被能被2整除,則整除,則跳出跳出for循環(huán)循環(huán)*/ break; 該程序的運行結果如下:該程序的運行結果如下:22. 例例3.113. 注意事項注意事項1. 語句一般形式語句一般形式3.3.1 break語句語句3.3 幾種轉移控制語句幾種轉移控制語句(1)當)當break位于循環(huán)體內的位于循環(huán)體內的switch結結構中時,構中時,break只是強迫程序流程退出只是強迫程序流程退出switch結構,而不是退出結構,而不是退出switch所在的所在的循環(huán)體。循環(huán)體。(2)在嵌套的循環(huán)結構中,)在嵌套的循環(huán)結構中,break只退只退出它所在的那層循環(huán)。出它所在的那層循環(huán)。(3)當
37、需要直接退出多層循環(huán)時,可)當需要直接退出多層循環(huán)時,可通過增加標記的方法逐層退出。也可以通過增加標記的方法逐層退出。也可以用用3.3.4節(jié)介紹的節(jié)介紹的goto語句來完成。語句來完成。2. 例例3.123. 注意事項注意事項1. 語句一般形式語句一般形式3.3.2 continue語句語句3.3 幾種轉移控制語句幾種轉移控制語句continue語句用來結束本次循環(huán),即跳語句用來結束本次循環(huán),即跳過循環(huán)體中過循環(huán)體中continue語句下面尚未執(zhí)行語句下面尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循環(huán)的語句,接著進行下一次是否執(zhí)行循環(huán)的判定,即結束本次循環(huán)。的判定,即結束本次循環(huán)。continue
38、語句的語法形式為:語句的語法形式為: continue;2. 例例3.123. 注意事項注意事項1. 語句一般形式語句一般形式3.3.2 continue語句語句3.3 幾種轉移控制語句幾種轉移控制語句例例3.12 continue語句應用舉例語句應用舉例。#includemain() int i; for(i=1;i10;i+) if(i%2=0) /*如果如果i能被能被2整除,整除,則結束本次循環(huán),進入下次循環(huán)的判則結束本次循環(huán),進入下次循環(huán)的判定定*/ continue; else printf(%dn,i); 該程序的運行情況該程序的運行情況如下:如下:135792. 例例3.123.
39、 注意事項注意事項1. 語句一般形式語句一般形式3.3.2 continue語句語句3.3 幾種轉移控制語句幾種轉移控制語句(1)continue語句通常和語句通常和if語句連語句連用,只能提前結束一輪循環(huán),不能用,只能提前結束一輪循環(huán),不能使整個循環(huán)終止。使整個循環(huán)終止。(2)當)當continue語句位于處在循環(huán)語句位于處在循環(huán)體中的體中的switch結構中時,結構中時,continue語句只對循環(huán)起作用,即退出一輪語句只對循環(huán)起作用,即退出一輪循環(huán),進入下一次是否循環(huán)的判定。循環(huán),進入下一次是否循環(huán)的判定。(3)continue語句用在語句用在while、dowhile循環(huán)中與用在循環(huán)中
40、與用在for循環(huán)有循環(huán)有些不同。在些不同。在for循環(huán)中終止本次循環(huán)循環(huán)中終止本次循環(huán)運行時,要計算表達式運行時,要計算表達式3的值。的值。2. 例例3.131. 區(qū)別區(qū)別3.3.3 break語句與語句與continue語句的區(qū)別語句的區(qū)別3.3 幾種轉移控制語句幾種轉移控制語句break語句和語句和continue語句都可以用在語句都可以用在while、dowhile、for循環(huán)體中,都有循環(huán)體中,都有退出循環(huán)的功能,但是退出循環(huán)的功能,但是break語句用來退語句用來退出循環(huán)體,執(zhí)行循環(huán)體后面的第出循環(huán)體,執(zhí)行循環(huán)體后面的第1條語句;條語句;而而continue語句用來退出本次循環(huán),提語
41、句用來退出本次循環(huán),提前進入下次循環(huán)的判定。前進入下次循環(huán)的判定。3. 流程圖比較流程圖比較2. 例例3.131. 區(qū)別區(qū)別3.3.3 break語句與語句與continue語句的區(qū)別語句的區(qū)別3.3 幾種轉移控制語句幾種轉移控制語句例例3.13 輸出兩位數(shù)中所有能同時被輸出兩位數(shù)中所有能同時被3和和5整除的數(shù)。整除的數(shù)。分析:能同時被分析:能同時被3和和5整除的數(shù)應滿整除的數(shù)應滿足足(j%3=0)&(j%5=0),不能同時,不能同時被被3和和5整除的數(shù)應滿足整除的數(shù)應滿足(j%3!=0)|(j%5!=0)。#includemain() int j; for(j=10;j=50 真 假
42、 m=c*80 m=c*90 ct 真 假 t=50 真 假 c=50m=t*80+(c-t)*60m=t*90+(c-t)*60m=c*80+(t-c)*45m=c*90+(t-c)*45 輸出應付的金額m 真 假1. 實例一實例一 2. 實例二實例二3. 實例三實例三3.5 C程序舉例程序舉例程序如下:程序如下:#includemain() int c,t; /*變量變量c代表買上衣的件數(shù),代表買上衣的件數(shù),t代表買褲子代表買褲子的件數(shù)的件數(shù)*/ int m; /*變量變量m表示應付金額表示應付金額*/ printf(Please input the number of c and t:n
43、); scanf(%d,%d,&c,&t); /*輸入需要買的上衣輸入需要買的上衣和褲子的件數(shù)和褲子的件數(shù)*/ if(c=t) /*成套買成套買*/ if(c=50) m=c*80; /*買買50套以上,每套套以上,每套80元元*/ else m=c*90; /*買買50套以下,每套套以下,每套90元元*/ else /*不成套買不成套買*/ if(ct) /*買的上衣比褲子多買的上衣比褲子多*/ if(t=50) m=t*80+(c-t)*60; /*多于多于50件,成件,成套部分按每套套部分按每套80元算,單件另算元算,單件另算*/ 1. 實例一實例一 2. 實例二實例二3
44、. 實例三實例三3.5 C程序舉例程序舉例else m=t*90+(c-t)*60; /*少于少于50件,成套部分按每件,成套部分按每套套90元算,單件另算元算,單件另算*/ else /*買的上衣比褲子多買的上衣比褲子多*/ if(c=50) m=c*80+(t-c)*45; /*多于多于50件,成件,成套部分按每套套部分按每套80元算,單件另算元算,單件另算*/ else m=c*90+(t-c)*45; /*少于少于50件,成套部件,成套部分按每套分按每套90元算,單件另算元算,單件另算*/ printf(The money you need to pay is %dn, m); /*輸
45、出應付的金額輸出應付的金額*/程序的運行結果為:程序的運行結果為:Please input the number of c and t:54,29 The money you need to pay is 41101. 實例一實例一 2. 實例二實例二3. 實例三實例三3.5 C程序舉例程序舉例利用多重循環(huán)語句求出利用多重循環(huán)語句求出100以內所有的質數(shù)。以內所有的質數(shù)。思路:質數(shù)是指只能被思路:質數(shù)是指只能被1和它本身整除的自然數(shù)。和它本身整除的自然數(shù)??梢杂每梢杂胒or循環(huán)語句控制循環(huán)語句控制1到到100之間數(shù)值之間數(shù)值j的增加,用的增加,用while循環(huán)語句判斷數(shù)值循環(huán)語句判斷數(shù)值j是否
46、為質數(shù),并輸出。是否為質數(shù),并輸出。下圖所示為對應的下圖所示為對應的N-S流程圖。流程圖。for j=2 to 100prime=1k=2當k=(j/2)j%k=0真假prime=0k+prime=1真假輸出j的值輸出換行符n1. 實例一實例一 2. 實例二實例二3. 實例三實例三3.5 C程序舉例程序舉例程序如下:程序如下:#includemain() int j; /*定義一個整型變量定義一個整型變量j,用于外層循環(huán)的計數(shù),用于外層循環(huán)的計數(shù)*/ int k,prime;/*k是內層循環(huán)的控制變量,是內層循環(huán)的控制變量,prime作為作為質數(shù)的標志質數(shù)的標志*/ printf(The pr
47、ime between 1 and 100 are:n); /*for循環(huán)控制循環(huán)控制1到到100之間數(shù)值的變化,如果是質數(shù)之間數(shù)值的變化,如果是質數(shù)則輸出則輸出*/ for(j=2;j=100;j+)/*從從2開始循環(huán)開始循環(huán)*/ prime=1; k=2; /*用用while語句判斷是否是質數(shù)語句判斷是否是質數(shù)*/ while(k=0&chick=0真假依次輸出cock 、hen、chick的值1. 實例一實例一 2. 實例二實例二3. 實例三實例三3.5 C程序舉例程序舉例程序如下:程序如下:#includevoid main() int cock,hen,chick; for(cock=0;cock=0&chick=0) printf(ncock%4d,hen%4d,chick%4d, cock,hen,c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產項目設計合同模板
- 2024藥品采購合同
- 工業(yè)用油購銷合同
- 2024年度高鐵站場CFG樁基礎施工合同
- 2024年圖書館公共衛(wèi)生間改造升級合同
- 商鋪定金租賃合同樣本
- 擔保合同書寫格式
- 2024總價合同和可調價合同簡介
- 2024股權融資協(xié)議書樣本
- 2024簽購房合同需要什么
- tubeless胸科手術麻醉
- 電商免責聲明范本
- 飛行科普知識講座
- 社區(qū)健康服務與管理教案
- 高三一輪復習生物5.1植物生長素課件
- 上海中考英語考綱詞匯
- 創(chuàng)新方法與創(chuàng)新設計智慧樹知到期末考試答案2024年
- 川教版四年級英語上冊全冊練習含答案
- 2024年全國職業(yè)技能大賽(模特表演賽項)理論考試題庫(含答案)
- JB T 6527-2006組合冷庫用隔熱夾芯板
- 弘揚正能量提升凝聚力課件
評論
0/150
提交評論