C語言及程序設計課件1第四章 選擇結構程序設計_第1頁
C語言及程序設計課件1第四章 選擇結構程序設計_第2頁
C語言及程序設計課件1第四章 選擇結構程序設計_第3頁
C語言及程序設計課件1第四章 選擇結構程序設計_第4頁
C語言及程序設計課件1第四章 選擇結構程序設計_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

教學要點與重點教學要點:本章主要介紹選擇結構程序設計的作用和意義。教學重點:掌握選擇結構分支條件的設計與應用。第四章選擇結構程序設計

選擇結構是程序的3種基本結構之一。在C語言中,通常使用if語句或switch語句來實現選擇結構程序設計。4.1if語句C語言提供了三種格式的if語句。它們分別是:單分支if語句、雙分支if語句和多分支if語句。4.1.1單分支if語句基本格式為:if(表達式)語句;說明:①“表達式”一般為關系表達式或邏輯表達式,但也可以是其它表達式,如賦值表達式等,甚至也可以是一個變量。例如:“if(a=8)語句;”、“if(b)語句;”都是允許的,只要表達式的值為非0,即為“真”。通常把關系表達式或邏輯表達式的值為真時,稱為條件滿足。②語句是“條件”滿足時,處理方法的描述,可以是若干個語句。

單分支if語句執行流程:首先判斷表達式的值是否為真,若表達式的值為真(非0),則執行其后的語句;否則不執行該語句。語句的控制流程如圖4-1所示。圖4-1單分支if語句執行流程實例:【例4.1】輸入兩個整數a和b,如果a小于b,則把整數a打印出來?!纠?.2】文字大小寫轉換。輸入一個字符,判別它的大小寫狀態,如果是小寫,則將它轉換成大寫字母,然后輸出轉換后的字符。4.1.1單分支if語句4.1.2雙分支if語句雙分支if語句為if-else形式,基本格式為:

if(表達式)

語句塊1;

else

語句塊2;說明:①“表達式”一般為關系表達式或邏輯表達式。通常把關系表達式或邏輯表達式的值為真時,稱為條件滿足;值為假時,稱為條件不滿足。反之亦然。②語句塊1、語句塊2分別是“條件”滿足或不滿足時,處理方法的描述,可以是若干個語句。

雙分支if語句的控制流程:雙分支if語句在程序的執行過程中,首先判斷“條件”,其值為真(非0)時,執行語句塊1;為假(0)時執行語句塊2。執行完語句塊1或語句塊2之后,接下來執行if后面的語句。語句的控制流程如圖4-2所示。圖4-2雙分支if語句執行流程【例4.3】從鍵盤輸入一個整數,判斷這個數的是否大于0。4.1.2雙分支if語句4.1.3多分支if語句基本格式為:if(表達式1)語句塊1;elseif(表達式2)語句塊2;;

……elseif(表達式m)語句塊n;else語句塊n+1;說明:①多分支if語句依次判斷表達式的值,當某個表達式的值為真(非0)時,則執行其下面的語句,然后跳到整個if語句之外繼續執行程序。②如果所有的表達式均為假,則執行語句n+1;如果所列出的條件都不滿足,又沒有else子句,則跳到整個if語句之外繼續執行程序,不執行任何多分支if語句內的語句。

多分支if語句的控制流程:多分支if語句在程序的執行過程中,首先判斷條件“表達式1”,其值為真(非0)時,執行語句塊1;為假(0)時進一判斷條件“表達式2”,其值為真執行語句塊2,依次類推,到達判斷條件“表達式n”,其值為真時,執行語句塊n,為假時,執行語句塊n+1。接下來執行if后面的語句。語句的控制流程如圖4-3所示。圖4-3多分支if語句執行流程4.1.4if語句的嵌套當if語句中的語句又是if語句時,這種情況就稱為if語句的嵌套。if語句的嵌套的基本格式為:if(表達式) if(表達式)語句塊1; else語句塊2;else f(表達式)語句塊3; else語句塊4;如果嵌套的if語句是if-else形式,將會出現多個if和else的情況,要特別注意if和else的配對問題。例如:if(表達式)if(表達式)語句塊1;elseif(表達式)語句塊2;else語句塊3;說明:在這段程序中,有三個if,兩個else,其中的每個else和if的配對關系是什么?從程序的書寫格式來看,是希望第一個出現的else能和第一個出現的if配對,但實際上這個else是與第二個if配對的。

4.1.4if語句的嵌套C語言規定:else總是與它前面最近的一個沒有配對的if配對。如何實現上個實例中第一個else和第一個if配對呢?可以利用加花括號{}的方法來改變原來的配對關系。例如:

if(表達式) {if(表達式)語句塊1;} else if(表達式)語句塊2; else語句塊3;

這樣,{}就限定了內嵌if語句的范圍,就實現了第一個出現的else和第一個出現的if配對?!纠?.5】寫出下面程序的運行結果【例4.6】輸入兩個整數x,y,z,輸出其中最大的數。

4.1.5條件運算符和條件表達式(1)條件運算符條件運算符是C語言中一個特殊的運算符,由“?”和“:”組合而成。條件運算符是三目運算符,要求有3個操作對象,并且三個操作對象都是表達式。在條件語句中,若只執行單個賦值語句,常使用條件運算來表示。這樣既會使程序簡潔,又可以提高了運行效率。例如:

if(x>y)max=x;elsemax=y;

用條件運算可以表示為:

max=(x>y)?x:y;

執行時,先計算(x>y)的值為真還是假,若為真,則表達式取值為x;否則取值為y。(2)條件表達式其一般形式為:表達式1?表達式2:表達式3

條件運算的求值規則為:計算表達式1的值,若表達式1的值為真,則以表達式2的值作為整個條件表達式的值,否則以表達式3的值作為整個條件表達式的值。例如:max=(x>y)?x:y;①優先級條件運算符的運算優先級低于關系運算符和算術運算符,高于賦值符。因此,表達式max=(x>y)?x:y可以去掉括號,寫為max=x>y?x:y,執行時意義是相同的。②結合性條件運算符的結合方向是自右至左。例如:x>y?m:z>m?z:d等價于x>y?x:(z>m?z:m)③條件表達式中,表達式1通常為關系或邏輯表達式,表達式2、3的類型可以是數值表達式、賦值表達式、函數表達式或條件表達式。4.1.5條件運算符和條件表達式4.2switch語句當對一個表達式的不同取值情況作不同處理時,用多分支if語句的程序結構顯得較為雜亂,而用switch語句將使程序的結構更清晰,C語言提供了專門用于解決多分支選擇問題的switch語句,用來實現多種情況選擇的程序設計。4.2.1switch語句基本格式為:

switch(表達式) { case常量表達式1:語句塊1; case常量表達式2:語句塊2; …… case常量表達式n:語句塊n; default:語句塊n+1; }4.2switch語句說明:①“表達式”一般為整型變量或者字符型變量,case后面的只能是常量表達式。②switch語句的執行過程是:先求“表達式”的值,并逐個與其后的常量表達式值相比較。當表達式的值與某個常量表達式的值相等時,即執行其后的語句,然后不再進行判斷,繼續執行后面所有case后的語句塊,在case后,允許有多個語句,可以不用{}括起來。如表達式的值與所有case后的常量表達式均不相同時,則執行default后的語句。③case與其后面的常量表達式合稱為case語句標號,每個case后的各常量表達式的值必須互不相同,否則會導致錯誤。④在關鍵字case和常量表達式之間一定要有空格,switch后面的括號不能省略。各個case和default的出現次序不影響執行結果。⑤多個case可以共用一組執行語句。例如:case'A':case'B': case'C':printf(">60\n");break;4.2.2switch語句的嵌套

switch語句也可以嵌套,但一般較少使用。在switch語句中,“case常量表達式”只起語句標號的作用,并不進行條件判斷。當執行switch語句后,程序會根據case后面表達式的值找到匹配的入口標號,并從此處開始執行,不再進行判斷。為了避免這種情況,C語言提供了break語句,專門用于跳出switch語句,break語句只有關鍵字break,沒有參數。break語句不但可以用在switch語句中終止switch語句的執行,也可以用在循環中終止循環,要格外注意break在這里的作用。

switch語句實例:

【例4.7】生肖程序設計,用戶輸入出生年份,根據輸入的年份來確定用戶的屬相,把結果打印出來。

【例4.8】設計程序,實現季節判斷,用戶輸入1、2、3月是春季,4、

5、6月是夏季,7、8、9月是秋季,10、11、12是冬季。

【例4-9】輸入平年的一個月份,輸出這個月的天數。4.2switch語句4.3選擇結構程序設計舉例【例4.10】設計C語言程序,由鍵盤輸入任意3個數,計算以這3個數為邊長的三角形的面積。算法分析如下:設3個邊為a,b,c,(1)查看輸入的3個數能否組成三角形(2)計算三角形的面積【例4.12】某市規定如下用水收費標準:每戶一月用水不超過6立方米時,水費按“基準費”收,每立方米2.4元;超過6立方米時,未超過部分按“基準費”收,超過部分按“調水價”收,每立方米6元。根據用戶用水量,求用戶的水費?!纠?.13】一個數如果恰好等于除它本身外的因子和,那么這個數就稱為“完數”,編寫程序,求1000之內的完數。【例4.11】求一元二次方程的根。按照公式:s=(a+b+c)*0.5area=sqrt(s*(s-a)*(s-b)*(s-c))(面積公式)任務4.4.1計算個人所得稅?!締栴}描述】

輸入個人工資計算個人所得稅。根據新的個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論