0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

從零開始跟我學(xué)C語言之分支結(jié)構(gòu)(上)

jf_ZqFkd6Up ? 來源:linux迷 ? 2023-02-06 10:14 ? 次閱讀

Hi!這里是漁火。

今天我們來講分支結(jié)構(gòu)。計算機在執(zhí)行程序時,通常都是按照語句的書寫順序執(zhí)行的,但在許多情況下需要根據(jù)條件選擇所要執(zhí)行的語句,這就選擇所要的語句。C語言中用于實現(xiàn)分支結(jié)構(gòu)的控制語句主要有:if語句、switch語句。

我們來看一個例子感受下分支結(jié)構(gòu)。

【1.1】輸入三角形的三條邊,判斷能否構(gòu)成三角形,若能則計算并輸出三角形的面積,否則給出出錯提示。


#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("不能構(gòu)成三角形
");
  else {
    ar=sqrt(s*(s-a)*(s-b)*(s-c));
    printf("三角形的面積是:%f
",ar);
  } 
          //2023.2.1漁火 Linux迷 www.linuxmi.com
  return 0;
}
運行結(jié)果如下:

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
773deb24-a565-11ed-bfe3-dac502259ad0.png

分析:程序運行時,首先輸入三角形的三條邊,分別保存在三個整型變量a,b,c中,然后根據(jù)三角形的構(gòu)成條件,判斷任意兩條邊之和是否大于第三邊。如果不滿足這個條件,則三條邊不能構(gòu)成三角形,如果滿足這個條件,就可以根據(jù)相應(yīng)的公式計算三角形的面積。

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é)果如下:

776497c4-a565-11ed-bfe3-dac502259ad0.png


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é)果如下:

7777cea2-a565-11ed-bfe3-dac502259ad0.png

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)條件表達式允許嵌套。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11180

    瀏覽量

    208503
  • Switch
    +關(guān)注

    關(guān)注

    1

    文章

    532

    瀏覽量

    58068
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7581

    瀏覽量

    135610
  • 三角形
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    11339
  • 數(shù)值
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    14339

原文標題:從零開始跟我學(xué) C 語言之分支結(jié)構(gòu)(上)

文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    跟我學(xué)C語言之順序結(jié)構(gòu)

    hi!這里是漁火。今天我們來講講 C 語言的順序結(jié)構(gòu)。所謂順序結(jié)構(gòu)就是按照程序代碼的書寫順序,自上而下依次執(zhí)行。我們來看一個例子,感受下順序結(jié)構(gòu)
    發(fā)表于 02-02 10:06 ?521次閱讀

    從零開始學(xué)單片機C語言

    本帖最后由 igbt 于 2011-4-21 10:12 編輯 《從零開始學(xué)單片機C語言》是單片機入門教材。
    發(fā)表于 04-21 10:04

    從零開始學(xué)電路基礎(chǔ)》(從零開始學(xué)電子技術(shù)叢書)

    電氣控制與PLC技術(shù)].劉建清.掃描版.pdf[從零開始學(xué)電子測量技術(shù)].李建清.掃描版.pdf[從零開始學(xué)CPLD和Verilog.HDL編程技術(shù)].李建清.掃描版.pdf[
    發(fā)表于 06-05 23:12

    從零開始學(xué)單片機C語言——PDF

    `下載地址:http://yunpan.cn/QGCsezJtF5mjp[從零開始學(xué)單片機C語言].李建清.掃描版`
    發(fā)表于 09-29 16:28

    從零開始學(xué)單片機C語言,很全的資料

    `從零開始學(xué)單片機C語言,很全的資料需要的網(wǎng)盤里取從零開始學(xué)單片機
    發(fā)表于 07-22 09:20

    從零開始學(xué)電子》叢書全套網(wǎng)盤分享

    從零開始學(xué)模擬電子技術(shù)鏈接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取碼:othe【從零開始學(xué)電子叢書】
    發(fā)表于 06-28 18:45

    初學(xué)者都在看??!從零開始學(xué)單片機C語言從零開始學(xué)電子叢書】

    初學(xué)者都在看??!從零開始學(xué)單片機C語言從零開始學(xué)電子叢書】
    發(fā)表于 07-27 15:32

    跟我學(xué)數(shù)字電路

    跟我學(xué)數(shù)字電路
    發(fā)表于 04-09 23:09 ?0次下載

    從零開始學(xué)單片機C語言 李建清.掃描版

    電子發(fā)燒友網(wǎng)站提供《從零開始學(xué)單片機C語言 李建清.掃描版.txt》資料免費下載
    發(fā)表于 08-29 16:59 ?0次下載

    [從零開始學(xué)單片機C語言].李建清.掃描版_部分2

    電子發(fā)燒友網(wǎng)站提供《[從零開始學(xué)單片機C語言].李建清.掃描版_部分2.txt》資料免費下載
    發(fā)表于 08-31 08:07 ?0次下載

    從零開始學(xué)單片機C語言.haozip02

    從零開始學(xué)單片機C語言.haozip02,論壇只允許上傳小于20M的壓縮包, 總共分兩卷,需要下載兩個壓縮包才能解壓成功。
    發(fā)表于 08-16 18:54 ?0次下載

    從零開始學(xué)單片機C語言.haozip01

    從零開始學(xué)單片機C語言.haozip01,論壇只允許上傳小于20M的壓縮包, 總共分兩卷,需要下載兩個壓縮包才能解壓成功。
    發(fā)表于 08-16 19:37 ?0次下載

    從零開始跟我學(xué)C語言之分支結(jié)構(gòu)(下)

    Hi!這里是漁火。今天我們繼續(xù)來講C語言分支結(jié)構(gòu)。在C語言里,可以使用if-else實現(xiàn)
    的頭像 發(fā)表于 02-07 09:27 ?748次閱讀

    從零開始跟我學(xué)C語言之循環(huán)結(jié)構(gòu)

    Hi!這里是漁火。今天我們來學(xué)校C語言中的循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計中的基本結(jié)構(gòu)之一。循
    的頭像 發(fā)表于 02-10 15:30 ?788次閱讀

    從零開始跟我學(xué)C語言之循環(huán)結(jié)構(gòu)(下)

    C語言中,使用while語句完成不定次數(shù)的循環(huán),如果滿足循環(huán)條件,則反復(fù)執(zhí)行循環(huán)體語句,當循環(huán)條件不滿足時退出循環(huán)。while語句在使用時,總是先要判斷一個條件,使用可以用while語句實現(xiàn)“當型”循環(huán)。while語句的一般形式如下:while(表達式)循環(huán)體;。接下來
    的頭像 發(fā)表于 02-12 17:27 ?653次閱讀