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