C 語(yǔ)言中的分支嵌套結(jié)構(gòu)
要想實(shí)現(xiàn)一些復(fù)雜的功能,依靠簡(jiǎn)單的分支結(jié)構(gòu)和多重分支結(jié)構(gòu)等等是遠(yuǎn)遠(yuǎn)不夠的。所以我們還需要分支嵌套結(jié)構(gòu)。
1. 分支嵌套結(jié)構(gòu)的語(yǔ)法
if (條件 1)
{
if (條件 2)
{
執(zhí)行語(yǔ)句 1
}
else
{
執(zhí)行語(yǔ)句 2
}
}
else
{
if (條件 3)
{
執(zhí)行語(yǔ)句 3
}
}
執(zhí)行過(guò)程
2. 場(chǎng)景
當(dāng)程序中需要多層條件判斷的時(shí)候,會(huì)使用嵌套的分支結(jié)構(gòu),用來(lái)根據(jù)不同的條件組合,來(lái)跳轉(zhuǎn)執(zhí)行不同的處理語(yǔ)句。這在程序中是非常常見的,分支嵌套結(jié)構(gòu)就如同我們?nèi)粘I钪械暮芏嘤?jì)劃內(nèi)容。
比如,我們有這樣一個(gè)場(chǎng)景:如果今天天氣好,我們就去郊游,如果天氣不好我們待在家里。打開天氣預(yù)報(bào)發(fā)現(xiàn)今天的天氣不錯(cuò),誒,這個(gè)時(shí)候我們級(jí)就可以去郊游。換算到程序中也就是相當(dāng)于滿足了“天氣好”這樣一個(gè)條件,執(zhí)行了“去郊游”這樣的語(yǔ)句。我們?nèi)ソ加蔚脑捒隙ㄒ獛蕵?lè)的東西,比如說(shuō)撲克牌或者圍棋等等,那么到底帶什么呢?我們決定如果去郊游的人數(shù)大于 2 人就帶撲克牌,如果只有 2 人,那么只能帶圍棋了。也就是說(shuō)滿足“郊游人數(shù)大于 2 人”的條件就會(huì)執(zhí)行“帶撲克牌”語(yǔ)句,如果不滿足的話執(zhí)行“帶圍棋”語(yǔ)句。
實(shí)例
#include <stdio.h>
int main()
{
int x = 1, y = 2, z = 3;
if (x > 0)
{
if (y > z)
{
printf("語(yǔ)句1\n");
}
else
{
printf("語(yǔ)句2\n");
}
}
else
{
if (z > 1)
{
printf("語(yǔ)句3\n");
}
}
return 0;
}
運(yùn)行結(jié)果
語(yǔ)句2
由于 x > 0 條件成立,所以會(huì)執(zhí)行 if 語(yǔ)句后面的程序,緊接著就要下一個(gè)判斷, y > z ,顯然這個(gè)是不成立的,所以執(zhí)行了 else 里面的語(yǔ)句。
大家可以嘗試修改上面的程序,修改片段條件,或者增加新的分支。
3. 小結(jié)
對(duì)于 C 語(yǔ)言中的嵌套分支,是解決多個(gè)條件同時(shí)要成立的問(wèn)題。比如既要高效,又要省錢,又要質(zhì)量好。那么這三個(gè)條件的同時(shí)成立和部分成立的判斷就可以使用嵌套分支。說(shuō)句實(shí)話,這三點(diǎn)在現(xiàn)實(shí)生活中是沒(méi)有辦法同時(shí)成立的,尤其是在軟件開發(fā)過(guò)程中。大家要有所權(quán)衡。