在順序結構中,各語句是按由上而下的順序執行的,執行完上一個語句就自動執行下一個語句,是無條件的,不必做任何判。這是最簡單的程序。
實際上,在很多情況下,需要根據某個條件是否滿足來決定是否執行指定的操作任務,或者從給定的兩種或多種操作選擇其一。這就是選擇結構的問題,這裡用C語言來解決這種問題。
工具/原料
計算機一臺
Visual C++ 6.0編程環境
方法/步驟
用if語句實現選擇結構:
if語句的一般形式:
if(表達式)語句1
else 語句2
如圖所示:
輸入3個數,a,b,c,要求從小到大輸出。
條件表達式:
有一種if語句,當被判別的表達式的值為“真”和“假”時,都執行一個賦值語句且向同一個變量賦值。這就要求條件表達式。
條件表達式的一般公式:
表達式1?表達式2:表達式3
可以形象的理解:先是表達式1,若為非0,則執行表達式2,否則執行表達式3。
【注】:條件運算符優於賦值運算符。
問題:輸入一個字符,判斷它是否為大寫字母。如果是,則將其轉換成小寫字母;如不是,不轉換。然後輸出最後得到的字符。用條件表達式處理。
選擇結構的嵌套:
在if語句中又包含一個或多個if語句稱為if語句的嵌套(nest)。
其一般形式:
if()
if( ) 語句1
else 語句2
else
if() 語句3
else 語句4
應當注意if和else的配對關係。else總是與它上面的最近的未配對的if配對。
問題:有一函數:
y= -1 x<0;
y= 0 x=0;
y= 1 x=1;
編程,輸入一個x值,要求輸出想要的y的值。
用switch語句實現多分支選擇結構:
if語句只有兩個分支可以選擇,而對多分支選擇時,用switch語句。
switch語句是多分支選擇語句。
其一般形式為:
Switch(表達式)
{
case 常量1 :語句1
case 常量2 :語句2
. . .
. . .
. . .
case 常量n : 語句n
default : 語句n+1
}
例如:要求按照考試成績的等級輸出百分制分數段,A等為85分以上,B等為70~84分,C等為60~69分,D等W為60分一下。成績的輸出由鍵盤輸入。
這是一個多分支選擇問題,用switch語句進行設計。
選擇結構程序綜合舉例:
問題:寫一程序,判斷某一年是否為閏年。
滿足兩個條件:一是能被4整除但不能被100整除,
二是能被400整除
都是閏年。
求ax^2+bx+c=0方程的解。
如圖所示:
注意事項
在switch語句中注意break的用法,是跳出本次選擇語句。