Hi!這里是漁火。今天我們繼續(xù)來講C語言的分支結(jié)構(gòu)。在C語言里,可以使用if-else實現(xiàn)分支結(jié)構(gòu)。
1、雙分支if語句。其一般形式為:if(表達(dá)式)語句1;else 語句2;。 我們來用雙分支if語句來做一道簡單的題目。
【1.1】使用雙分支語句求兩個數(shù)中較大的數(shù)。
#include運行結(jié)果1://2023.2.1漁火 Linux迷 www.linuxmi.com int main() { int a,b; printf("請輸入兩個整數(shù):"); scanf("%d%d",&a,&b); if(a>b) printf("兩個整數(shù)中的最大數(shù)為:%d ",a); else printf("兩個整數(shù)中的最大數(shù)為:%d ",b); //2023.2.1漁火 Linux迷 www.linuxmi.com return 0; }
運行結(jié)果2:
2、單分支語句。其一般形式為:if(表達(dá)式) 語句; 我們用單分支語句來解決一道題目。
【2.1】編寫程序任意輸入一個實數(shù),輸出其絕對值。
#include運行結(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; }
分析:無論在雙分支還是單分支if語句的格式中,“表達(dá)式”都是用來描述判斷的條件,語法上可以是任意類型的表達(dá)式。表達(dá)式的結(jié)果如果為“0”,表示“假”;結(jié)果為“1”,表示“真”。
無論在雙分支還是單分支if語句的格式中,被執(zhí)行的語句均為單個語句,如果想要執(zhí)行一組語句時,則必須將這一組語句用{}括起來形成復(fù)合語句,但在“}”之后不能再加括號。注意:復(fù)合語句中的語句執(zhí)行時會全部被執(zhí)行。
我們來看一個復(fù)合語句的例子。
【3.1】輸入3個實數(shù),要求按從小到大的順序輸出。
#include運行結(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語句的基本形式解決分支少于兩個的問題十分方便,而經(jīng)常遇到的是多于兩個分支,或者需要再多個不同條件下執(zhí)行不同語句的問題,這就需要掌握if語句的嵌套以及多分支結(jié)果。一個if語句中又包含一個或多個if語句的現(xiàn)象稱為if語句的嵌套。if語句的基本形式:if(表達(dá)式) 語句1;else 語句2;。其中“語句1”或“語句2”都可以嵌套另一個if語句,在缺省else部分的if語句中的“語句”也可以嵌套另一個if語句。在if語句嵌套的結(jié)構(gòu)中一定要注意else與if之間的對應(yīng)關(guān)系。為了避免二義性,在C語言中規(guī)定其對應(yīng)原則是:else總是與它前面最近的一個未匹配的if相匹配。
【4.1】輸入3個任意數(shù),找出其中的最大值。
#include運行結(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語句是最常用的實現(xiàn)多路分支的方法,其一般形式為:if(表達(dá)式1) 語句1;else if(表達(dá)式2)···else if(表達(dá)式n-1) 語句n-1;else 語句n;.
在C語言中還提供了一種switch語句也可以實現(xiàn)多分支的選擇。switch的一般形式為:switch(表達(dá)式){case 常量表達(dá)式1;語句1;break;case 常量表達(dá)式2;語句2;break;···case 常量表達(dá)式n;語句n;break;default:語句n+1;break;}
注意:1、switch后的表達(dá)式可以是任何表達(dá)式,其值只能為整型、字符型、枚舉型。2、每個case后面的常量表達(dá)式的值互不相同,否則會出現(xiàn)互相矛盾的現(xiàn)象。3、各個case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果。4、可以讓多個case共用一組執(zhí)行語句。5、switch語句允許嵌套使用。
-
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209499 -
Switch
+關(guān)注
關(guān)注
1文章
533瀏覽量
58236 -
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136824 -
程序
+關(guān)注
關(guān)注
117文章
3787瀏覽量
81043 -
字符
+關(guān)注
關(guān)注
0文章
233瀏覽量
25208
原文標(biāo)題:從零開始跟我學(xué) C 語言之分支結(jié)構(gòu)(下)
文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論