Care and diligence bring luck. Judge each day not by the harvest you reap but by the seeds you plant. 每一個(gè)程序都是由一條條語(yǔ)句組成,為了結(jié)構(gòu)化程序設(shè)計(jì),這里就引入了三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)也就是從上而下,線性有序地依次執(zhí)行,比如之前的 Hello World 程序,選擇結(jié)構(gòu)即根據(jù)條件成立與否選擇程序執(zhí)行的線路,循環(huán)結(jié)構(gòu)的話就是重復(fù)執(zhí)行一個(gè)或幾個(gè)模塊,直到條件滿足跳出為止。下面就著重介紹第二個(gè)結(jié)構(gòu) —— 選擇結(jié)構(gòu) 選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果來(lái)確認(rèn)某些條件是否成立,進(jìn)而控制程序的流程,即如果判斷成立,則執(zhí)行下面的語(yǔ)句,否則執(zhí)行另外分支的語(yǔ)句。C++ 提供了三種選擇結(jié)構(gòu):if 選擇結(jié)構(gòu)、if-else 選擇結(jié)構(gòu)、switch選擇結(jié)構(gòu)
if(表達(dá)式) 語(yǔ)句塊; if( 2>1 ) { cout < 'ok';="" ="" }="" ="" cout=""><> 注: 表達(dá)式必須用圓括號(hào)括起來(lái),不可省略 語(yǔ)句塊如果只有一條語(yǔ)句可以省略外面的花括號(hào)
相對(duì)于 if(表達(dá)式) 當(dāng)表達(dá)式成立時(shí)執(zhí)行的語(yǔ)句塊; else 當(dāng)表達(dá)式不成立時(shí)執(zhí)行的語(yǔ)句塊; if( 2>1 ) cout < 'ok';="" ="" else="" ="" ="" ="" cout=""><> 注: 表達(dá)式必須用圓括號(hào)括起來(lái),不可省略 語(yǔ)句塊如果只有一條語(yǔ)句可以省略外面的花括號(hào) 嵌套的
if(表達(dá)式1) { if(表達(dá)式2) 語(yǔ)句塊1; } else 語(yǔ)句塊2; 注: 嵌套的 if 語(yǔ)句在花括號(hào)內(nèi),下面的 else 和最外面的 if 組成一隊(duì) 當(dāng) if 語(yǔ)句嵌套時(shí)且無(wú)花括號(hào)存在,else 總是和最近的 if 語(yǔ)句配對(duì) if(表達(dá)式1) if(表達(dá)式2) 語(yǔ)句塊1; else 語(yǔ)句塊2; else 語(yǔ)句塊3; 注: else 和最近的 if 配對(duì),所以內(nèi)部的 if 與 else 先配對(duì),之后外部的配對(duì) if(表達(dá)式1) 語(yǔ)句塊1; else if(表達(dá)式2) 語(yǔ)句塊2; 注: if 與 else if 連用的情況多用于 測(cè)試多種條件 一個(gè) if 后可跟 零個(gè) 或 一個(gè) else,else 必須在所有 else if 之后 一個(gè) if 后可跟 零個(gè) 或 多個(gè) else if,else if 必須在 else 之前。 一旦某個(gè) else if 匹配成功,其他的 else if 或 else 將不會(huì)被測(cè)試 三目運(yùn)算符(? :) C++ 中唯一一個(gè)需要 3 個(gè)操作數(shù)的操作符,常用來(lái)代替 if-else 語(yǔ)句使代碼變得簡(jiǎn)潔,該操作符也稱為 條件運(yùn)算符 或 條件表達(dá)式 ,通常格式如下 b ? x : y 先計(jì)算條件b,然后進(jìn)行判斷,如果b的值為true,計(jì)算x的值,運(yùn)算結(jié)果為x的值;否則,計(jì)算y的值,運(yùn)算結(jié)果為y的值。一個(gè)條件表達(dá)式從不會(huì)既計(jì)算x,又計(jì)算y。條件運(yùn)算符是右結(jié)合的,也就是說(shuō),從右向左分組計(jì)算。例如,a?b:c?d:e將按a?b:(c?d:e)執(zhí)行 a ? b : c ? d : e // 執(zhí)行順序,從右往左 a ? b : ( c ? d : e ) 條件運(yùn)算符通常用于 賦值 或 輸出語(yǔ)句中由于條件不同輸出不同 // 賦值 int max = (a>b) ? a : b ; // 輸出語(yǔ)句 cout < (="" (2="">1) ? 'OK' : 'Okey' ) <> 注: 在 cout 輸出語(yǔ)句中,用于輸出的表達(dá)式必須用括號(hào)括起來(lái) cout < (a+b)=""><>
switch(表達(dá)式) { case 常量表達(dá)式1: 語(yǔ)句塊1; break; 分析: 首先在 注: 語(yǔ)句中可以出現(xiàn)一個(gè)或多個(gè) case,但是只能有一次 default 或省略 default 部分,default 語(yǔ)句可以出現(xiàn)在任何位置,不一定在最后 多個(gè) case 允許使用在同一個(gè)語(yǔ)句塊前面 case 1: case 2: cout < 'ok'="">< endl;="" =""> switch 的表達(dá)式只能為 int 或 char 型數(shù)據(jù), 當(dāng)為 char 型數(shù)據(jù)時(shí)會(huì)將字符轉(zhuǎn)化為相應(yīng)的 ASCII 碼值, 對(duì)于 字符串、浮點(diǎn)型 等不能作為 switch 的表達(dá)式 常量表達(dá)式中不能出現(xiàn)變量,一般為 常數(shù) 或 字符,每個(gè)常量表達(dá)式的值不能相同 case 后面的語(yǔ)句塊可以是 一條 或 多條 語(yǔ)句, 且無(wú)需用 花括號(hào) 括起來(lái), 因?yàn)樗鼤?huì)自動(dòng)從符合結(jié)果的 case 處自動(dòng)向下執(zhí)行 case 語(yǔ)句中允許嵌套 switch 語(yǔ)句 switch(表達(dá)式) { case 常量表達(dá)式1: switch(表達(dá)式2) { case 常量表達(dá)式2: 語(yǔ)句塊; break; case 常量表達(dá)式3: 語(yǔ)句塊; break; ... } break; case 常量表達(dá)式4: 語(yǔ)句塊; break; ... 在線OJ —— 1.4 編程基礎(chǔ)之邏輯表達(dá)式與條件分支 http://noi./ |
|
來(lái)自: 長(zhǎng)沙7喜 > 《信息課》