Hi!這里是漁火。
今天我們來講分支結(jié)構(gòu)。計算機在執(zhí)行程序時,通常都是按照語句的書寫順序執(zhí)行的,但在許多情況下需要根據(jù)條件選擇所要執(zhí)行的語句,這就選擇所要的語句。C語言中用于實現(xiàn)分支結(jié)構(gòu)的控制語句主要有:if語句、switch語句。
我們來看一個例子感受下分支結(jié)構(gòu)。
【1.1】輸入三角形的三條邊,判斷能否構(gòu)成三角形,若能則計算并輸出三角形的面積,否則給出出錯提示。
#include運行結(jié)果如下:#include //2023.2.1漁火 Linux迷 www.linuxmi.com int main() { int a,b,c; float ar; double s; printf("請輸入三角形的三條邊長"); scanf("%d,%d,%d",&a,&b,&c); s=(a+b+c)/2.0; if(a+b<=c||b+c<=a||a+c<=b) printf("不能構(gòu)成三角形 "); else { ar=sqrt(s*(s-a)*(s-b)*(s-c)); printf("三角形的面積是:%f ",ar); } //2023.2.1漁火 Linux迷 www.linuxmi.com return 0; }
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com gcc -o linuxmi linuxmi.c -lm linuxmi@linuxmi /home/linuxmi/www.linuxmi.com ./linuxmi 請輸入三角形的三條邊長7,8,9 三角形的面積是:26.832815
分析:程序運行時,首先輸入三角形的三條邊,分別保存在三個整型變量a,b,c中,然后根據(jù)三角形的構(gòu)成條件,判斷任意兩條邊之和是否大于第三邊。如果不滿足這個條件,則三條邊不能構(gòu)成三角形,如果滿足這個條件,就可以根據(jù)相應的公式計算三角形的面積。
1、關(guān)系運算符。關(guān)系運算符用于判斷兩個操作數(shù)的大小關(guān)系。
注意:(1)關(guān)系運算符都是雙目運算符,其結(jié)合方向是左結(jié)合。(2)關(guān)系運算符的優(yōu)先級低于算術(shù)運算符,但高于賦值運算符。(3)關(guān)系運算符中,>、<、>=、<=的優(yōu)先級相同,==、!=的優(yōu)先級相同,前者的優(yōu)先級高于后者。
2、關(guān)系表達式。用關(guān)系運算符將兩個表達式鏈接起來的式子稱為關(guān)系表達式。關(guān)系表達式的一般形式為:表達式1關(guān)系運算符 表達式2.功能:比較兩個表達式的大小,返回一個邏輯值。關(guān)系表達式中允許出現(xiàn)嵌套的情況。
注意:(1)注意區(qū)分運算符”=“和”==“。”=“是賦值運算符,”==“是關(guān)系運算符。(2)對實數(shù)進行相等判斷可能得不到正確的結(jié)果。(3)關(guān)系表達式中可以出現(xiàn)賦值運算符。
關(guān)系表達式主要用于分支結(jié)構(gòu)的條件判斷。關(guān)系表達式的結(jié)果是一個邏輯值”真“或”假“,由于C語言中沒有邏輯值類型的數(shù)據(jù),因此用”1“表示“真”,”0“表示”假“。
【2.1】關(guān)系運算
#include//2023.2.1漁火 Linux迷 www.linuxmi.com int main() { char c='m'; int i=10,j=20,k=30; float x=13e+5,y=10.85; printf("%d,%d",'a'+5 =k+1); printf("%d,%d",1 運行結(jié)果如下:
1、邏輯運算符。關(guān)系表達式只能描述描述單一的條件。然而邏輯運算符可以將若干個關(guān)系表達式連接起來才能更好的描述條件,
注意:與運算符&&和或運算符||都是雙目運算符,非運算符!為單目運算符。
2、邏輯運算符。用邏輯運算符將兩個表達式鏈接起來的式子稱為邏輯表達式。邏輯表達式的一般形式為:表達式1 邏輯運算符 表達式2或邏輯運算符 表達式1。邏輯表達式的結(jié)果也是一個邏輯值”真“或”假“,即為”1“或”0“。
小白提示:
(1)參與邏輯運算的數(shù)據(jù)可以是1和0,也可以是非零值和0,還可以是任何類型的數(shù)據(jù),但最終都是以非0和0來判斷他們是”真“或”假“。
(2)在邏輯表達式中也可以使用賦值運算符。
(3)C語言規(guī)定,只對決定整個表達式值所需的最少數(shù)目的子表達式進行計算。即由在若干個子表達式組成的邏輯表達式中,從左向右計算,當計算出一個子表達式的值就確定了整個邏輯表達式的值,之后就不再計算右邊的剩下的子表達式的值,這種情況稱之為”短路“。【3.1】邏輯運算符
#include#include //2023.2.1漁火 Linux迷 www.linuxmi.com int main() { int a=8,b=8,c=6,d; printf("%d,",!a&&!b&&c); printf("%d,",!a||!b||c); printf("%d ",a>=b&&b>c); d=c--||(b-6)&&a++; printf("a=%d,b=%d,c=%d,d=%d ",a,b,c,d); //2023.2.1漁火 Linux迷 www.linuxmi.com return 0; }
運行結(jié)果如下:
1、條件運算符。條件運算符由”?“和”:“兩個符號組成,用于條件求值,它是一個三目運算符,需要三個操作數(shù)。條件運算符的優(yōu)先級低于邏輯運算符、高于賦值運算符,它是右結(jié)合。
2、條件表達式。由條件運算符將3個表達式連接起來的式子稱為條件表達式,其一般形式為:表達式1?表達式2:表達式3。條件表達式的執(zhí)行順序是先計算表達式1的值,如果值不為0,表示條件為真,否則表達式2 的值作為整個條件表達式的值,否則表達式3的值作為整個條件表達式的值。
小白提示:
(1)條件表達式中的表達式1的類型可以與表達式2和表達式3不同,表達式2和表達式3的類型也可以不同,此時系統(tǒng)會自動進行轉(zhuǎn)換,結(jié)果為表達式2 和表達式3中級別類型較高的,并將其作為條件表達式的類型。
(2)條件表達式中表達式2和表達式3不僅可以是數(shù)值表達式,還可以是賦值表達式或函數(shù)表達式。
(3)條件表達式允許嵌套。
審核編輯:湯梓紅
-
Linux
+關(guān)注
關(guān)注
87文章
11326瀏覽量
209961 -
Switch
+關(guān)注
關(guān)注
1文章
533瀏覽量
58318 -
C語言
+關(guān)注
關(guān)注
180文章
7613瀏覽量
137244 -
三角形
+關(guān)注
關(guān)注
0文章
21瀏覽量
11392 -
數(shù)值
+關(guān)注
關(guān)注
0文章
80瀏覽量
14381
原文標題:從零開始跟我學 C 語言之分支結(jié)構(gòu)(上)
文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論