【語(yǔ)法篇】3、選擇結(jié)構(gòu)(二)

一本鸣、條件嵌套

之前我們提到過(guò)疫衩,if條件可以是單分支結(jié)構(gòu),也可以是雙分支結(jié)構(gòu)荣德,并且在每個(gè)分支里面的語(yǔ)句塊可以是一個(gè)語(yǔ)句闷煤,也可以是多個(gè)語(yǔ)句童芹。這些語(yǔ)句可以是普通的賦值或者其他語(yǔ)句,同樣也可以if語(yǔ)句鲤拿。類似于if里面又包含if這樣的結(jié)構(gòu)辐脖,我們稱之為嵌套,以后我們還會(huì)接觸到循環(huán)里面又有循環(huán)皆愉,我們叫它循環(huán)嵌套嗜价。

if (布爾表達(dá)式1){         // 分支語(yǔ)塊里面又可以包含if語(yǔ)句
      if(布爾表達(dá)式2){  }    else{}   
}
else{
      語(yǔ)塊;
}
if (布爾表達(dá)式1){         // 分支語(yǔ)塊里面又可以包含if語(yǔ)句
     語(yǔ)塊幕庐;
}
else{
       if(布爾表達(dá)式2){  }    else{}   
}

我們來(lái)舉例說(shuō)明一下久锥。

有一個(gè)分段函數(shù) f(x),當(dāng)x=1時(shí)异剥,f(x)=10;當(dāng)x=2時(shí)瑟由,f(x)=20;當(dāng)x為其他值時(shí),f(x)=30冤寿。

#include <iostream>
using namespace std;
int main(){
    double x, y;
    cin >> x;
    if(x == 1){
        y = 10;
    }
    else{  // x!=1
        if(x == 2){
            y = 20;
        }
        else{ // x!=1 && x!=2
            y = 30;
        }
    }
    cout << y;
    return 0;
}

對(duì)于這種包含多重嵌套的語(yǔ)句歹苦,要特別注意每個(gè)else所代表的意思,理清楚各個(gè)條件之間的關(guān)系督怜,做到不重復(fù)殴瘦、不遺漏。

思考題:
Description
讀入三個(gè)不同的整數(shù)号杠,編程按由小到大的順序排列出來(lái),中間用一空格隔開(kāi)蚪腋。
Input
輸入三個(gè)不同的整數(shù)
Output
按由小到大輸出三個(gè)整數(shù),中間用一空格隔開(kāi)
Sample Input
3 5 2
Sample Output
2 3 5

拓展:如果將題目中的『三個(gè)不同的整數(shù)』姨蟋,改成三個(gè)整數(shù)屉凯,又應(yīng)該如何解決呢?

二眼溶、switch語(yǔ)句

在條件語(yǔ)句中悠砚,有時(shí)我們并不僅僅是兩條分支,有時(shí)是多條分支堂飞,我們當(dāng)然可以借助于if的嵌套來(lái)實(shí)現(xiàn)灌旧,但是有時(shí)由于分支比較多,嵌套起來(lái)代碼就會(huì)比較復(fù)雜和冗余酝静,為了方便實(shí)現(xiàn)多個(gè)分支的情況节榜,C++中還提供了switch語(yǔ)句,專門用來(lái)方便實(shí)現(xiàn)多分支的情況别智。

我們都知道一年中,每個(gè)月份的天數(shù)都是固定的稼稿,假定今年是非閏年薄榛,我們希望輸入月份讳窟,能得出該月的天數(shù)。
很顯然敞恋,我們知道1丽啡、3、5硬猫、7补箍、8、10啸蜜、12都是31天坑雅,4、6衬横、9裹粤、11都是30天,2月是28天蜂林。如果我們嵌套來(lái)寫(xiě)遥诉,會(huì)比較冗余和復(fù)雜。

#include <iostream>
using namespace std;
int main(){
    int m, day;
    cin >> m;
    if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12){
        day = 31;   
    }
    else{ // 2噪叙、4矮锈、6、9睁蕾、11月 
        if(m==2){
            day = 28;
        }
        else{  // 4愕难、6、9惫霸、11 月 
            day = 30;
        }
    }
    cout << day;
    return 0
}

如果我們用swith語(yǔ)句來(lái)寫(xiě)猫缭,會(huì)簡(jiǎn)單一些。

#include <iostream>
using namespace std;
int main(){
    int m, day;
    cin >> m;
    switch (m){
        case 2 : day = 28; break;
        case 4 : day = 30; break;
        case 6 : day = 30; break;
        case 9 : day = 30; break;
        case 11: day = 30;break;   
        default: day = 31;   //除上面列出情況外壹店,day=31  
    }
    cout << day;
    return 0; 
}

switch的格式如下

switch(表達(dá)式){
     case  常量表達(dá)式1 :
              語(yǔ)塊1;
              break;
   case  常量表達(dá)式2 :
              語(yǔ)塊2;
              break;
  ...
    case  常量表達(dá)式n :
              語(yǔ)塊n;
              break;
   default:
            語(yǔ)塊n+1;
}

三猜丹、練習(xí)

1、輸入某學(xué)生的成績(jī)硅卢,若成績(jī)?cè)?5分以上射窒,輸出very good,若成績(jī)?cè)?0分到85分之間将塑,輸出good脉顿,若成績(jī)低于60分,輸出no good点寥。

2艾疟、輸入兩個(gè)正整數(shù)a,b。b最大不超過(guò)三位數(shù)蔽莱,a不大于31弟疆。使a在左,b在右盗冷,拼接成一個(gè)新的數(shù)c怠苔。例如:a=2,b=16仪糖,則c=216柑司;若a=18,b=476锅劝,則c=18476攒驰。提示:求c的公式為:c=a×K+b,根據(jù)位數(shù)不同鸠天,k取值不同讼育。
輸入樣例:2 16
輸出樣例:216

3、根據(jù)從鍵盤上輸入的表示星期幾的數(shù)字稠集,對(duì)應(yīng)輸出它的英文名稱奶段。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市剥纷,隨后出現(xiàn)的幾起案子痹籍,更是在濱河造成了極大的恐慌,老刑警劉巖晦鞋,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹲缠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡悠垛,警方通過(guò)查閱死者的電腦和手機(jī)线定,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)确买,“玉大人斤讥,你說(shuō)我怎么就攤上這事⊥逯海” “怎么了芭商?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)搀缠。 經(jīng)常有香客問(wèn)我铛楣,道長(zhǎng),這世上最難降的妖魔是什么艺普? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任簸州,我火速辦了婚禮鉴竭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勿侯。我一直安慰自己拓瞪,他們只是感情好缴罗,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布助琐。 她就那樣靜靜地躺著,像睡著了一般面氓。 火紅的嫁衣襯著肌膚如雪兵钮。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天舌界,我揣著相機(jī)與錄音掘譬,去河邊找鬼。 笑死呻拌,一個(gè)胖子當(dāng)著我的面吹牛戒洼,可吹牛的內(nèi)容都是我干的狂秦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼污它!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起虾啦,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤锰扶,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后初家,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體偎窘,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年溜在,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了陌知。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掖肋,死狀恐怖仆葡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情培遵,我是刑警寧澤浙芙,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站籽腕,受9級(jí)特大地震影響嗡呼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜皇耗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一南窗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦万伤、人聲如沸窒悔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)简珠。三九已至,卻和暖如春虹钮,著一層夾襖步出監(jiān)牢的瞬間聋庵,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工芙粱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留祭玉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓春畔,卻偏偏與公主長(zhǎng)得像脱货,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子律姨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容