Hi!這里是漁火。今天我們繼續(xù)來(lái)講C語(yǔ)言的分支結(jié)構(gòu)。在C語(yǔ)言里,可以使用if-else實(shí)現(xiàn)分支結(jié)構(gòu)。
1、雙分支if語(yǔ)句。其一般形式為:if(表達(dá)式)語(yǔ)句1;else 語(yǔ)句2;。 我們來(lái)用雙分支if語(yǔ)句來(lái)做一道簡(jiǎn)單的題目。
【1.1】使用雙分支語(yǔ)句求兩個(gè)數(shù)中較大的數(shù)。
#include運(yùn)行結(jié)果1://2023.2.1漁火 Linux迷 www.linuxmi.com int main() { int a,b; printf("請(qǐng)輸入兩個(gè)整數(shù):"); scanf("%d%d",&a,&b); if(a>b) printf("兩個(gè)整數(shù)中的最大數(shù)為:%d ",a); else printf("兩個(gè)整數(shù)中的最大數(shù)為:%d ",b); //2023.2.1漁火 Linux迷 www.linuxmi.com return 0; }

運(yùn)行結(jié)果2:

2、單分支語(yǔ)句。其一般形式為:if(表達(dá)式) 語(yǔ)句; 我們用單分支語(yǔ)句來(lái)解決一道題目。
【2.1】編寫(xiě)程序任意輸入一個(gè)實(shí)數(shù),輸出其絕對(duì)值。
#include運(yùn)行結(jié)果如下://2023.2.1漁火 Linux迷 www.linuxmi.com int main() { float x; scanf("%f",&x); if(x<0) x=-x; printf("%f",x); //2023.2.1漁火 Linux迷 www.linuxmi.com return 0; }

分析:無(wú)論在雙分支還是單分支if語(yǔ)句的格式中,“表達(dá)式”都是用來(lái)描述判斷的條件,語(yǔ)法上可以是任意類型的表達(dá)式。表達(dá)式的結(jié)果如果為“0”,表示“假”;結(jié)果為“1”,表示“真”。
無(wú)論在雙分支還是單分支if語(yǔ)句的格式中,被執(zhí)行的語(yǔ)句均為單個(gè)語(yǔ)句,如果想要執(zhí)行一組語(yǔ)句時(shí),則必須將這一組語(yǔ)句用{}括起來(lái)形成復(fù)合語(yǔ)句,但在“}”之后不能再加括號(hào)。注意:復(fù)合語(yǔ)句中的語(yǔ)句執(zhí)行時(shí)會(huì)全部被執(zhí)行。
我們來(lái)看一個(gè)復(fù)合語(yǔ)句的例子。
【3.1】輸入3個(gè)實(shí)數(shù),要求按從小到大的順序輸出。
#include運(yùn)行結(jié)果如下://2023.2.1漁火 Linux迷 www.linuxmi.com int main() { float x,y,z,k; scanf("%f %f %f",&x,&y,&z); if(x>y) {k=x;x=y;y=k;} if(x>z) {k=x;x=z;z=k;} if(y>z) {k=y;y=z;z=k;} printf("%5.2f,%5.2f,%5.2f ",x,y,z); //2023.2.1漁火 Linux迷 www.linuxmi.com return 0; }

分析:{k=x;x=z;z=k;}的作用是交換變量x和y的值,變量k為中間變量。 使用if語(yǔ)句的基本形式解決分支少于兩個(gè)的問(wèn)題十分方便,而經(jīng)常遇到的是多于兩個(gè)分支,或者需要再多個(gè)不同條件下執(zhí)行不同語(yǔ)句的問(wèn)題,這就需要掌握if語(yǔ)句的嵌套以及多分支結(jié)果。一個(gè)if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句的現(xiàn)象稱為if語(yǔ)句的嵌套。if語(yǔ)句的基本形式:if(表達(dá)式) 語(yǔ)句1;else 語(yǔ)句2;。其中“語(yǔ)句1”或“語(yǔ)句2”都可以嵌套另一個(gè)if語(yǔ)句,在缺省else部分的if語(yǔ)句中的“語(yǔ)句”也可以嵌套另一個(gè)if語(yǔ)句。在if語(yǔ)句嵌套的結(jié)構(gòu)中一定要注意else與if之間的對(duì)應(yīng)關(guān)系。為了避免二義性,在C語(yǔ)言中規(guī)定其對(duì)應(yīng)原則是:else總是與它前面最近的一個(gè)未匹配的if相匹配。
【4.1】輸入3個(gè)任意數(shù),找出其中的最大值。
#include運(yùn)行結(jié)果如下://2023.2.1漁火 Linux迷 www.linuxmi.com int main() { int x,y,z,max; scanf("%d %d %d",&x,&y,&z); if(x>y) if(x>z) max=x; else max=z; else if(y>z) max=y; else max=z; printf("max=%d ",max); //2023.2.1漁火 Linux迷 www.linuxmi.com return 0; }

多分支if語(yǔ)句是最常用的實(shí)現(xiàn)多路分支的方法,其一般形式為:if(表達(dá)式1) 語(yǔ)句1;else if(表達(dá)式2)···else if(表達(dá)式n-1) 語(yǔ)句n-1;else 語(yǔ)句n;.
在C語(yǔ)言中還提供了一種switch語(yǔ)句也可以實(shí)現(xiàn)多分支的選擇。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;break;}
注意:1、switch后的表達(dá)式可以是任何表達(dá)式,其值只能為整型、字符型、枚舉型。2、每個(gè)case后面的常量表達(dá)式的值互不相同,否則會(huì)出現(xiàn)互相矛盾的現(xiàn)象。3、各個(gè)case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果。4、可以讓多個(gè)case共用一組執(zhí)行語(yǔ)句。5、switch語(yǔ)句允許嵌套使用。
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
Linux
+關(guān)注
關(guān)注
88文章
11681瀏覽量
218572 -
Switch
+關(guān)注
關(guān)注
1文章
541瀏覽量
61569 -
C語(yǔ)言
+關(guān)注
關(guān)注
183文章
7642瀏覽量
145115 -
程序
+關(guān)注
關(guān)注
117文章
3838瀏覽量
85063 -
字符
+關(guān)注
關(guān)注
0文章
237瀏覽量
26124
原文標(biāo)題:從零開(kāi)始跟我學(xué) C 語(yǔ)言之分支結(jié)構(gòu)(下)
文章出處:【微信號(hào):Linux迷,微信公眾號(hào):Linux迷】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
跟我學(xué)C語(yǔ)言之順序結(jié)構(gòu)(上)
hi!這里是漁火。今天我們來(lái)講講 C 語(yǔ)言的順序結(jié)構(gòu)。所謂順序結(jié)構(gòu)就是按照程序代碼的書(shū)寫(xiě)順序,自上而下依次執(zhí)行。我們來(lái)看一個(gè)例子,感受下順序
發(fā)表于 02-02 10:06
?1009次閱讀
從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言
本帖最后由 igbt 于 2011-4-21 10:12 編輯
《從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言》是單片機(jī)入門教材。
發(fā)表于 04-21 10:04
《從零開(kāi)始學(xué)電路基礎(chǔ)》(從零開(kāi)始學(xué)電子技術(shù)叢書(shū))
電氣控制與PLC技術(shù)].劉建清.掃描版.pdf[從零開(kāi)始學(xué)電子測(cè)量技術(shù)].李建清.掃描版.pdf[從零開(kāi)始學(xué)CPLD和Verilog.HDL編程技術(shù)].李建清.掃描版.pdf[
發(fā)表于 06-05 23:12
從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言——PDF
`下載地址:http://yunpan.cn/QGCsezJtF5mjp[從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言].李建清.掃描版`
發(fā)表于 09-29 16:28
從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言,很全的資料
`從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言,很全的資料需要的網(wǎng)盤(pán)里取從零開(kāi)始學(xué)單片機(jī)
發(fā)表于 07-22 09:20
《從零開(kāi)始學(xué)電子》叢書(shū)全套網(wǎng)盤(pán)分享
】從零開(kāi)始學(xué)模擬電子技術(shù)鏈接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取碼:othe【從零開(kāi)始學(xué)電子叢書(shū)】
發(fā)表于 06-28 18:45
初學(xué)者都在看?。?b class='flag-5'>從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言 【從零開(kāi)始學(xué)電子叢書(shū)】
初學(xué)者都在看??!從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言【從零開(kāi)始學(xué)電子叢書(shū)】
發(fā)表于 07-27 15:32
從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言 李建清.掃描版
電子發(fā)燒友網(wǎng)站提供《從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言 李建清.掃描版.txt》資料免費(fèi)下載
發(fā)表于 08-29 16:59
?0次下載
[從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言].李建清.掃描版_部分2
電子發(fā)燒友網(wǎng)站提供《[從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言].李建清.掃描版_部分2.txt》資料免費(fèi)下載
發(fā)表于 08-31 08:07
?0次下載
從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言.haozip02
從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言.haozip02,論壇只允許上傳小于20M的壓縮包,
總共分兩卷,需要下載兩個(gè)壓縮包才能解壓成功。
發(fā)表于 08-16 18:54
?0次下載
從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言.haozip01
從零開(kāi)始學(xué)單片機(jī)C語(yǔ)言.haozip01,論壇只允許上傳小于20M的壓縮包,
總共分兩卷,需要下載兩個(gè)壓縮包才能解壓成功。
發(fā)表于 08-16 19:37
?0次下載
從零開(kāi)始跟我學(xué)C語(yǔ)言之分支結(jié)構(gòu)(上)
今天我們來(lái)講分支結(jié)構(gòu)。計(jì)算機(jī)在執(zhí)行程序時(shí),通常都是按照語(yǔ)句的書(shū)寫(xiě)順序執(zhí)行的,但在許多情況下需要根據(jù)條件選擇所要執(zhí)行的語(yǔ)句,這就選擇所要的語(yǔ)句。C語(yǔ)言
從零開(kāi)始跟我學(xué)C語(yǔ)言之循環(huán)結(jié)構(gòu)(上)
Hi!這里是漁火。今天我們來(lái)學(xué)校C語(yǔ)言中的循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)中的基本結(jié)構(gòu)之一。循
從零開(kāi)始跟我學(xué)C語(yǔ)言之循環(huán)結(jié)構(gòu)(下)
在C語(yǔ)言中,使用while語(yǔ)句完成不定次數(shù)的循環(huán),如果滿足循環(huán)條件,則反復(fù)執(zhí)行循環(huán)體語(yǔ)句,當(dāng)循環(huán)條件不滿足時(shí)退出循環(huán)。while語(yǔ)句在使用時(shí),總是先要判斷一個(gè)條件,使用可以用while語(yǔ)句實(shí)現(xiàn)“當(dāng)型”循環(huán)。while語(yǔ)句的一般形式如下:while(表達(dá)式)循環(huán)體;。接下來(lái)
從零開(kāi)始跟我學(xué)C語(yǔ)言之分支結(jié)構(gòu)(下)
評(píng)論