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