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