【正文】
第 2章 程序控制結(jié)構(gòu) 選擇控制 循環(huán)控制 判斷表達(dá)式的使用 轉(zhuǎn)向語(yǔ)句 小結(jié) 語(yǔ)句是程序的基本語(yǔ)法成分 。 程序設(shè)計(jì)語(yǔ)言的語(yǔ)句按功能可以分成三類: ? 聲明語(yǔ)句 指示編譯器分配內(nèi)存 , 或者提供程序連接信息 ? 操作語(yǔ)句 描述對(duì)數(shù)據(jù)的處理 ? 控制語(yǔ)句 用于控制程序的執(zhí)行流程 。 所有程序都只能包含三種控制結(jié)構(gòu): 順序結(jié)構(gòu) 、 選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 第 2章 程序控制結(jié)構(gòu) 對(duì)給定的條件進(jìn)行判斷,并根據(jù)判斷的結(jié)果選擇不同的操作 選擇控制 條件運(yùn)算表達(dá)式 根據(jù)判斷條件,決定表達(dá)式的值 不改變程序語(yǔ)句執(zhí)行流程 比較條件運(yùn)算 1. if 語(yǔ)句的形式和執(zhí)行流程 if( 表達(dá)式 ) 語(yǔ)句 ; if 語(yǔ)句 語(yǔ)句形式( 1) 執(zhí)行流程 false (0) true (非 0) 表達(dá)式 語(yǔ) 句 if 語(yǔ)句 false (0) true (非 0) 表達(dá)式 語(yǔ) 句 1. if 語(yǔ)句的形式和執(zhí)行流程 if( 表達(dá)式 ) 語(yǔ)句 ; if 語(yǔ)句 語(yǔ)句形式( 1) 執(zhí)行流程 表達(dá)式 語(yǔ) 句非 if 語(yǔ)句 false (0) true (非 0) 表達(dá)式 語(yǔ) 句 1. if 語(yǔ)句的形式和執(zhí)行流程 if( 表達(dá)式 ) 語(yǔ)句 ; if 語(yǔ)句 語(yǔ)句形式( 1) 執(zhí)行流程 表達(dá)式 if 語(yǔ)句 if 語(yǔ)句 3 5 a b max 例: : max = a 。 if ( b a) max = b 。 cout max = max endl。 : if 語(yǔ)句 if 語(yǔ)句 3 5 a b max 3 例: : max = a 。 if ( b a) max = b 。 cout max = max endl。 : if 語(yǔ)句 if 語(yǔ)句 3 5 a b max 3 例: : max = a 。 if ( b a) max = b 。 cout max = max endl。 : if 語(yǔ)句 if 語(yǔ)句 3 5 a b max 3 例: : max = a 。 if ( b a) max = b 。 cout max = max endl。 : if 語(yǔ)句 if 語(yǔ)句 3 5 a b max 5 例: : max = a 。 if ( b a) max = b 。 cout max = max endl。 : if 語(yǔ)句 if 語(yǔ)句 3 5 a b max 5 max = 5 輸出 例: : max = a 。 if ( b a) max = b 。 cout max = max endl。 : if 語(yǔ)句 if 語(yǔ)句 7 3 a b max 例: : max = a 。 if ( b a) max = b 。 cout max = max endl。 : if 語(yǔ)句 if 語(yǔ)句 7 3 a b max 7 例: : max = a 。 if ( b a) max = b 。 cout max = max endl。 : if 語(yǔ)句 if 語(yǔ)句 7 3 a b max 7 例: : max = a 。 if ( b a) max = b 。 cout max = max endl。 : if 語(yǔ)句 if 語(yǔ)句 7 3 a b max 7 max = 7 輸出 例: : max = a 。 if ( b a) max = b 。 cout max = max endl。 : if 語(yǔ)句 if 語(yǔ)句 1. if 語(yǔ)句的形式和執(zhí)行流程 語(yǔ)句形式( 2) if( 表達(dá)式 ) 語(yǔ)句 1 ; else 語(yǔ)句 2 ; 執(zhí)行流程 false (0) true (非 0) 表達(dá)式 語(yǔ) 句 1 語(yǔ) 句 2 if 語(yǔ)句 if 語(yǔ)句 1. if 語(yǔ)句的形式和執(zhí)行流程 語(yǔ)句形式( 2) if( 表達(dá)式 ) 語(yǔ)句 1 ; else 語(yǔ)句 2 ; 執(zhí)行流程 false (0) true (非 0) 表達(dá)式 語(yǔ) 句 1 語(yǔ) 句 2 非 表達(dá)式 語(yǔ) 句 if 語(yǔ)句 if 語(yǔ)句 1. if 語(yǔ)句的形式和執(zhí)行流程 語(yǔ)句形式( 2) if( 表達(dá)式 ) 語(yǔ)句 1 ; else 語(yǔ)句 2 ; 執(zhí)行流程 false (0) true (非 0) 表達(dá)式 語(yǔ) 句 1 語(yǔ) 句 2 表達(dá)式 語(yǔ) 句 if 語(yǔ)句 if 語(yǔ)句 例: : if ( b a ) max = b 。 else max = a 。 cout max = max endl。 : 3 5 a b max if 語(yǔ)句 if 語(yǔ)句 3 5 a b max 例: : if ( b a ) max = b 。 else max = a 。 cout max = max endl。 : if 語(yǔ)句 if 語(yǔ)句 例: : if ( b a ) max = b 。 else max = a 。 cout max = max endl。 : 3 5 a b max 5 if 語(yǔ)句 if 語(yǔ)句 例: : if ( b a ) max = b 。 else max = a 。 cout max = max endl。 : 3 5 a b max 5 max = 5 輸出 if 語(yǔ)句 if 語(yǔ)句 例: : if ( b a ) max = b 。 else max = a 。 cout max = max endl。 : 7 3 a b max if 語(yǔ)句 if 語(yǔ)句 例: : if ( b a ) max = b 。 else max = a 。 cout max = max endl。 : 7 3 a b max 7 if 語(yǔ)句 if 語(yǔ)句 例: : if ( b a ) max = b 。 else max = a 。 cout max = max endl。 : 7 3 a b max 7 max = 7 輸出 if 語(yǔ)句 if 語(yǔ)句 例: : if ( b a ) max = b 。 else max = a 。 cout max = max endl。 : 7 3 a b max 7 max = 7 輸出 試一試 用條件表達(dá)式修改該程序 if 語(yǔ)句 if 語(yǔ)句 2. if 語(yǔ)句的嵌套 ? if 語(yǔ)句中的執(zhí)行語(yǔ)句如果又是另一個(gè) if語(yǔ)句,稱為嵌套 if語(yǔ)句 ? if 與 else 的配對(duì)關(guān)系: C++規(guī)定, else 總是與它接近的 if 配對(duì) ? 使用復(fù)合語(yǔ)句,可以改變條件語(yǔ)句的執(zhí)行流程 if 語(yǔ)句 if 語(yǔ)句 例 21 編寫程序計(jì)算貨物運(yùn)費(fèi)。設(shè)貨物運(yùn)費(fèi)每噸單價(jià) p(元)與運(yùn)輸 距離 s(公里)之間有如下關(guān)系: ?????????????????400203002022510030sssssp = 輸入要托運(yùn)的貨物重量為 w 噸,托運(yùn)距離 s 公里,計(jì)算總運(yùn)費(fèi) t : t = p * w * s if 語(yǔ)句 if 語(yǔ)句 控制流圖 true false true true true false false false S 100? S 200? S 300? S 400? P = 30 P = 20 P = P = 25 P = t = p * w * s if 語(yǔ)句 if 語(yǔ)句 true false true true true false false false S 100? S 200? S 300? S 400? P = 30 P = 20 P = P = 25 P = t = p * w * s // 例 21 計(jì)算貨物運(yùn)費(fèi) include iostream includeiomanip using namespace std 。 int main() { double t , p , w , s 。 cout Please input weight( ton ) : 。 cin w 。 cout Please input distsnce( kilometre ) : 。 cin s 。 if ( s 100 ) p = 30 。 else if ( s 200 ) p = 。 else if ( s 300 ) p = 25 。 else if ( s 400 ) p = 。 else p = 20 。 t = p * w * s 。 cout The cost is: setprecision(2) t 39。$39。 endl 。 } 想一想: 幾個(gè) else 分支語(yǔ)句的次序可以改變嗎? if 語(yǔ)句 // 例 21 計(jì)算貨物運(yùn)費(fèi) include iostream includeiomanip using namespace std 。 int main() { double t , p , w , s 。 cout Please input weight( ton ) : 。 cin w 。 cout Please input distsnce( kilometre ) : 。 cin s 。 if ( s 100 ) p = 30 。 else if ( s 200 ) p = 。