分支结构的程序设计.ppt
分支結構的程式設計4.1分支結構問題的提出 上一章所講到的順序結構程式中,各語句是按照語句的前後順序依次執行,沒有選擇,沒有跳躍,也沒有重複執行的問題,但是我們在解決實際問題時,經常遇到這樣的問題:當客觀現實事物滿足不同的條件,會有不同的結果出現。比如:某一門課程考試成績大於等於60分,該課程考核視為通過;如果考試成績小於60分,則視為不通過。遇到類似這樣的問題,首先需要判斷一下具體的情況是什麼,然後決定選擇什麼樣的處理方式。不同的情況,會有不同的處理結果。對以上問題的解決,在程式設計中需要採用分支結構,也稱為選擇結構。上述提到的“條件”,在C語言中是如何表示的呢?4.2判斷條件的描述方法4.2.1用關係運算式描述判斷條件4.2.2用邏輯運算式描述判斷條件4.3解決簡單的分支問題4.3.1if語句語句形式:if(運算式)語句 if語句的執行是:遇到if關鍵字,首先計算圓括號中的運算式的值,如果運算式的值為非0,則執行圓括號其後的語句,然後執行if語句後面的下一個語句。如果運算式的值為0,則跳過圓括號後面的語句,直接執行if語句後面的下一個語句。if語句執行過程如圖4-1所示。圖4-1if語句的執行4.3.2if-else語句 語句形式:if(運算式)語句1else語句2 該語句遇到關鍵字if,首先運算小括弧中的運算式,如運算式的值為非0,則執行緊跟其後的語句1,執行完語句1後,執行if-else結構後面的語句;如果運算式的值為0,則執行關鍵字else後面的語句2,接著執行if-else結構後面的語句。執行過程如圖4-2所示。圖4-2if-else語句的執行過程4.3.3if語句的嵌套 在if語句結構中,根據關鍵字if後面的運算式的值。決定選擇那一個分支,執行相應的語句。這個對應的語句只要是合法的語句,都可以執行。因此有時根據實際問題的需要,我們可以在if語句結構中再包含if語句結構,這就稱為if語句的嵌套。4.3.4條件運算符和條件運算式 在C語言中使用if語句,實現了分支結構,同時系統還提供了條件運算符,同樣可以實現簡單的分支結構。條件運算符為:?:該運算符是由兩個運算符所組成,為三目運算符。由條件運算符所構成的條件運算式為:運算式1?運算式2:運算式3它的運算功能是:當運算式1的值為非0時,運算運算式2,此時運算式2的值就作為整個條件運算式的值;當運算式1的值為0時,運算運算式3,此時運算式3的值就作為整個條件運算式的值。條件運算符的優先順序高於賦值運算符,但低於邏輯運算、關係運算和算術運算符。例如:y=x9?100∶200,由於賦值號的優先順序低於條件運算符,因此先求條件運算式的值,如x9關係運算式成立,則條件運算式的值為100;如x9不成立,則條件運算式的值為200,然後將條件運算式的值賦給變數y。4.4解決多重分支的問題4.4.1利用if語句的嵌套功能 請看以下語句結構:if(運算式1) if(運算式1)語句1語句1elseif(運算式2) elseif(運算式2)語句2語句2elseif(運算式3)elseif(運算式3)語句3整理後語句3......elseelse語句n+1語句n+1 以上語句結構,除最後一個else子句中,均嵌入了if-else語句,此語句結構執行過程是:從上到下逐一對if後面的運算式進行運算。當某一個運算式的值為非0時,就執行緊跟其後的相關子句中的語句,而後面的其餘部分均被跳過。因此有n個if語句,就有n+1個分支。4.4.2使用switch語句實現多重分支 除了使用嵌套的if語句,實現多重分支選擇之外,C語言系統還專門提供了一種多重分支選擇語句switch語句。 switch語句的一般形式為:switch(運算式){case常量運算式1