《程序的控制結構》PPT課件.ppt
《《程序的控制結構》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《程序的控制結構》PPT課件.ppt(70頁珍藏版)》請在裝配圖網上搜索。
第三章程序的控制結構,★主要內容程序語句及三種基本結構選擇結構循環(huán)結構,3.1.1程序語句,3.1程序語句及三種基本結構,語句(statement)是程序中最小的可執(zhí)行單位。一條語句可以完成一種基本操作,若干條語句組合在一起就能實現某種特定的功能。在C程序中,語句可以是以下三種形式之一。,單一語句,2.空語句,3.復合語句,3.1.2三種基本結構,(c)循環(huán)結構,假,真,(a)順序結構,語句n,語句n+1,語句n+2,,,,,(b)分支結構,假,真,(a)順序結構,,,,,(b)分支結構,條件成立?,,,,,,,,真,假,,,問題提出:,根據學生的考試成績判斷是否通過?,解題的步驟:,C語言提供的選擇結構有三種:if語句、if-else語句、switch語句。,3.2選擇結構,3.2.1if語句,語句形式:,if(表達式){語句};,語句執(zhí)行流程:,if語句:對所給條件進行判定,根據判定結果決定是否執(zhí)行程序段。,例3-1:從鍵盤任意輸入一個字符,判斷該字符是否是大寫英文字母。若是大寫字母,則自動轉換為小寫字母;否則,原樣輸出。,#includevoidmain(){charch;scanf("%c",},程序運行結果:輸入:A輸出:a輸入:*輸出:*,例3-2:輸入兩個整數a和b,并按從大到小的順序存放。即若a小于b則交換兩個數的位置,否則直接輸出a和b。,#includevoidmain(){inta,b,temp;printf("Entera,b:");scanf("%d%d",},說明,①在交換兩個變量的值時,不能用以下語句直接賦值a=b;b=a;②在if語句中,內嵌語句既可以是單一語句,也可以是復合語句。③在程序書寫中使用了縮進格式,即if的內嵌語句要比if向右縮進幾格。,#includevoidmain(){charch;scanf("%c",},思考:將例3-1做如下修改,程序的結果是?,;,補充:讀程序,理解”==”與”=”的作用及區(qū)別,#includevoidmain(){intm=10;if(m==100)printf(“m==%d”,m);if(m=100)printf(“misassigned%d\n”,m);},程序運行結果:misassigned100,if(表達式){語句1;}else{語句2;},,表達式,,語句1,真(非0),,,假(0),,語句2,,,3.2.2if-else語句,if-else語句適合于解決雙分支選擇問題,語句形式:,語句執(zhí)行流程:,例3-3:輸入一個學生的成績,如高于60分則輸出“pass”,否則,輸出“failed”。,#includevoidmain(){floatscore;printf("Enterscore(0~100):");scanf("%f",},補充:輸入一個整數,判斷該整數的奇偶性,#includevoidmain(){intm;printf(“inputm:”);scanf(“%d”,},,輸入m,,m%2==0,偶數,,,結束,,真,,假,奇數,,,inputm:2525isanoddnumber,inputm:3025isanevennumber,注意:有的if-else語句可以用條件運算符(?:)來實現。,if(a>b)max=a;elsemax=b;,,max=(a>b)?a:b;,重寫例3-1:輸出輸入一個英文字符,若為大寫字母則改為小寫字母,然后得到的字符。,#includevoidmain(){charzm;scanf(“%c”,},if(表達式1)語句1elseif(表達式2)語句2elseif(表達式3)語句3……elseif(表達式n)語句nelse語句n+1,3.2.3嵌套的if-else語句,語句形式:,,表達式1,,語句1,真(非0),假(0),,,,,,語句執(zhí)行流程:,例3-4:輸入學生成績,并按分數段確定等級。其中,90分以上為優(yōu),80分以上為良,70分以上為中,60分以上為及格,60分以下為不及格。,說明:此題目是一個多分支結構,在處理分支時,既不能有重復,也不能有遺漏。,#includevoidmain(){floatscore;printf("Enterscore(0~100):");scanf("%f",},例3-4:可改寫為如下程序:#includevoidmain(){floatscore;printf("Enterscore(0~100):");scanf("%f",},注意:在嵌套的if語言中,含有多個if和else,else與if之間的配對關系就很容易混淆。例如在以下程序中,if(x>y)if(y>z)printf("xisthelargest!");elseprintf("yisthesmallest");其中的else是與第一個if還是第二個if配對呢?,將以上程序改為:if(x>y){if(y>z)printf("xis.......");}elseprintf("yis........");這樣就從語法上將花括號{}中的內容說明為第一個if語句的內嵌語句,從而使else與較遠的第一個if配對。,例3-5計算分段函數,,x+1.2(x<0),#includevoidmain(){intx,y;scanf("%f",},語句形式:,switch(表達式){case常量1:語句1;case常量2:語句2;case常量3:語句3;.......case常量n:語句n;default:語句n+1;},根據表達式的不同值,選擇不同的程序分支,又稱開關語句。,數值型或字符型,常量表達式的值必須互不相同,否則執(zhí)行時將出現矛盾,即同一個開關值,將對應多種執(zhí)行方案。,3.2.4switch語句,語句執(zhí)行流程:,指語句的最后一條是否為break,簡單語句或復合語句,case語句出現的次序并不影響執(zhí)行結果。,例3-6:輸入學生成績,通過switch語句按分數段確定等級。其中,90分以上為優(yōu),80分以上為良,70分以上為中,60分以上為及格,60分以下為不及格。,#includevoidmain(){intscore;printf("Enterscore(0~100):");scanf("%d",}},說明:,①switch后的表達式可以是整型、字符型或枚舉型,但不能是關系表達式或邏輯表達式。case后的常量表達式類型必須與之匹配,并且每個case常量表達式的值必須互不相同,否則會出現編譯錯誤。②每個case后的語句可以是單一語句或空語句,也可以是多條語句,當然也可以是復合語句。由于case后是順序執(zhí)行的多條語句,因此可以不必寫成帶花括號的復合語句形式。③switch語句中的break是一個可選項,它的作用是中止與某個常量有關的語句段,并使程序跳到switch結構后的下一語句。如果沒有break語句,則程序將繼續(xù)執(zhí)行直到switch的結尾或遇到一個break為止。靈活運用switch語句的這一特性,可大大簡化編程設計。④default在switch語句中也是一個可選項。,例3-7:在程序設計中常用switch語句來處理各種鍵盤命令,例如,菜單選擇等。在屏幕上顯示菜單“1.Open2.Edit3.Save”,并根據用戶輸入,執(zhí)行相應的操作。,#includevoidmain(){charch;printf("1.Open2.Edit3.Save\n");scanf("%c",}},switch的嵌套:switch語句允許嵌套,即switch本身可以作為另一個層switch語句的一部分,switch(i){case0:switch(j){case0:printf(“i==j”);break;case1:printf(“i- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 程序的控制結構 程序 控制 結構 PPT 課件
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://kudomayuko.com/p-13156381.html