在程序的三種基本結(jié)構(gòu)中,第二種即為選擇結(jié)構(gòu),其基本特點是:程序的流程由多路分支
組成,在程序的一次執(zhí)行過程中,根據(jù)不同的情況,只有一條支路被選中執(zhí)行,而其他分支上的語句被直接跳過。
C語言中,提供if語句和switch語句選擇結(jié)構(gòu),if語句用于兩者選一的情況,而switch用于多分支選一的情形。
3.3.1if語句
1.if語句的兩種基本形式首先,我們看一個例子,由此了解選擇結(jié)構(gòu)的意義及設(shè)計方法。
[例3-5]輸入三個數(shù),找出并打印其最小數(shù)。
分析:設(shè)三個數(shù)為A、B、C,由鍵盤讀入,我們用一個變量MIN來標識最小數(shù),A、B、
C與MIN皆定義為int型變量。
每次比較兩個數(shù),首先比較A和B,將小的一個賦給MIN,再把第三個數(shù)C與MIN比較,
再將小的一個賦給MIN,則最后MIN即為A、B、C中最小數(shù)。
算法如下:
1)輸入A、B、C。
2)將A與B中小的一個賦給MIN。
3)將MIN與C中小的一個賦給MIN。
4)輸出MIN。
將第2)步細化為:若A<B,則MIN<==A,否則:MIN<==B;其流程圖見圖3-1。
第3)步細化為:若C<MIN,則MIN<==C;其流程圖見圖3-2。
對應(yīng)圖3-1和圖3-2,正是if語句的兩種基本形式,與圖3-2對應(yīng)的if語句的格式為:
if<表達式>語句
當表達式為真時,執(zhí)行語句,表達式為假時跳過語句。
與圖3-1對應(yīng)的if語句的格式為:
if〈表達式〉
語句1
else
語句2
當表達式為真時,執(zhí)行語句1,表達式為假時執(zhí)行語句2。無論如何,語句1與語句2每次只能有一個被執(zhí)行。
要注意的是:if或if...else,包括后面要講到的嵌套if,即if...elseif...被看成是一條語句,即使其中的語句是包含多條語句的復合語句,仍然如此。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |