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

運行結果2:

2、單分支語句。其一般形式為:if(表達式) 語句; 我們用單分支語句來解決一道題目。
【2.1】編寫程序任意輸入一個實數,輸出其絕對值。
#include運行結果如下://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語句的格式中,“表達式”都是用來描述判斷的條件,語法上可以是任意類型的表達式。表達式的結果如果為“0”,表示“假”;結果為“1”,表示“真”。
無論在雙分支還是單分支if語句的格式中,被執(zhí)行的語句均為單個語句,如果想要執(zhí)行一組語句時,則必須將這一組語句用{}括起來形成復合語句,但在“}”之后不能再加括號。注意:復合語句中的語句執(zhí)行時會全部被執(zhí)行。
我們來看一個復合語句的例子。
【3.1】輸入3個實數,要求按從小到大的順序輸出。
#include運行結果如下://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語句的基本形式解決分支少于兩個的問題十分方便,而經常遇到的是多于兩個分支,或者需要再多個不同條件下執(zhí)行不同語句的問題,這就需要掌握if語句的嵌套以及多分支結果。一個if語句中又包含一個或多個if語句的現象稱為if語句的嵌套。if語句的基本形式:if(表達式) 語句1;else 語句2;。其中“語句1”或“語句2”都可以嵌套另一個if語句,在缺省else部分的if語句中的“語句”也可以嵌套另一個if語句。在if語句嵌套的結構中一定要注意else與if之間的對應關系。為了避免二義性,在C語言中規(guī)定其對應原則是:else總是與它前面最近的一個未匹配的if相匹配。
【4.1】輸入3個任意數,找出其中的最大值。
#include運行結果如下://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語句是最常用的實現多路分支的方法,其一般形式為:if(表達式1) 語句1;else if(表達式2)···else if(表達式n-1) 語句n-1;else 語句n;.
在C語言中還提供了一種switch語句也可以實現多分支的選擇。switch的一般形式為:switch(表達式){case 常量表達式1;語句1;break;case 常量表達式2;語句2;break;···case 常量表達式n;語句n;break;default:語句n+1;break;}
注意:1、switch后的表達式可以是任何表達式,其值只能為整型、字符型、枚舉型。2、每個case后面的常量表達式的值互不相同,否則會出現互相矛盾的現象。3、各個case和default的出現次序不影響執(zhí)行結果。4、可以讓多個case共用一組執(zhí)行語句。5、switch語句允許嵌套使用。
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。
舉報投訴
-
Linux
+關注
關注
87文章
11442瀏覽量
212609 -
Switch
+關注
關注
1文章
535瀏覽量
59201 -
C語言
+關注
關注
180文章
7629瀏覽量
140083 -
程序
+關注
關注
117文章
3819瀏覽量
82312 -
字符
+關注
關注
0文章
234瀏覽量
25457
原文標題:從零開始跟我學 C 語言之分支結構(下)
文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
熱點推薦
跟我學C語言之順序結構(上)
hi!這里是漁火。今天我們來講講 C 語言的順序結構。所謂順序結構就是按照程序代碼的書寫順序,自上而下依次執(zhí)行。我們來看一個例子,感受下順序
發(fā)表于 02-02 10:06
?737次閱讀
《從零開始學電路基礎》(從零開始學電子技術叢書)
電氣控制與PLC技術].劉建清.掃描版.pdf[從零開始學電子測量技術].李建清.掃描版.pdf[從零開始學CPLD和Verilog.HDL編程技術].李建清.掃描版.pdf[
發(fā)表于 06-05 23:12
《從零開始學電子》叢書全套網盤分享
】從零開始學模擬電子技術鏈接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取碼:othe【從零開始學電子叢書】
發(fā)表于 06-28 18:45
[從零開始學單片機C語言].李建清.掃描版_部分2
電子發(fā)燒友網站提供《[從零開始學單片機C語言].李建清.掃描版_部分2.txt》資料免費下載
發(fā)表于 08-31 08:07
?0次下載
從零開始學單片機C語言.haozip02
從零開始學單片機C語言.haozip02,論壇只允許上傳小于20M的壓縮包,
總共分兩卷,需要下載兩個壓縮包才能解壓成功。
發(fā)表于 08-16 18:54
?0次下載
從零開始學單片機C語言.haozip01
從零開始學單片機C語言.haozip01,論壇只允許上傳小于20M的壓縮包,
總共分兩卷,需要下載兩個壓縮包才能解壓成功。
發(fā)表于 08-16 19:37
?0次下載
從零開始跟我學C語言之分支結構(上)
今天我們來講分支結構。計算機在執(zhí)行程序時,通常都是按照語句的書寫順序執(zhí)行的,但在許多情況下需要根據條件選擇所要執(zhí)行的語句,這就選擇所要的語句。C語言
從零開始跟我學C語言之循環(huán)結構(上)
Hi!這里是漁火。今天我們來學校C語言中的循環(huán)結構。循環(huán)結構是結構化程序設計中的基本結構之一。循
從零開始跟我學C語言之循環(huán)結構(下)
在C語言中,使用while語句完成不定次數的循環(huán),如果滿足循環(huán)條件,則反復執(zhí)行循環(huán)體語句,當循環(huán)條件不滿足時退出循環(huán)。while語句在使用時,總是先要判斷一個條件,使用可以用while語句實現“當型”循環(huán)。while語句的一般形式如下:while(表達式)循環(huán)體;。接下來
評論