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

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

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

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

jf_ZqFkd6Up ? 來源:Linux迷 ? 2023-02-07 09:27 ? 次閱讀

Hi!這里是漁火。今天我們繼續(xù)來講C語言的分支結(jié)構(gòu)。在C語言里,可以使用if-else實現(xiàn)分支結(jié)構(gòu)。

1、雙分支if語句。其一般形式為:if(表達(dá)式)語句1;else 語句2;。 我們來用雙分支if語句來做一道簡單的題目。

【1.1】使用雙分支語句求兩個數(shù)中較大的數(shù)。


#include
//2023.2.1漁火 Linux迷 www.linuxmi.com
int main()
{
  
  int a,b;
  printf("請輸入兩個整數(shù):"); 
  scanf("%d%d",&a,&b);
  if(a>b)
    printf("兩個整數(shù)中的最大數(shù)為:%d
",a);
  else
    printf("兩個整數(shù)中的最大數(shù)為:%d
",b);
          //2023.2.1漁火 Linux迷 www.linuxmi.com
  return 0;
}
運行結(jié)果1:

40c46194-a606-11ed-bfe3-dac502259ad0.png
運行結(jié)果2:


41051450-a606-11ed-bfe3-dac502259ad0.png


2、單分支語句。其一般形式為:if(表達(dá)式) 語句; 我們用單分支語句來解決一道題目。


【2.1】編寫程序任意輸入一個實數(shù),輸出其絕對值。

#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;
}
運行結(jié)果如下:
41352474-a606-11ed-bfe3-dac502259ad0.png


分析:無論在雙分支還是單分支if語句的格式中,“表達(dá)式”都是用來描述判斷的條件,語法上可以是任意類型的表達(dá)式。表達(dá)式的結(jié)果如果為“0”,表示“假”;結(jié)果為“1”,表示“真”。



無論在雙分支還是單分支if語句的格式中,被執(zhí)行的語句均為單個語句,如果想要執(zhí)行一組語句時,則必須將這一組語句用{}括起來形成復(fù)合語句,但在“}”之后不能再加括號。注意:復(fù)合語句中的語句執(zhí)行時會全部被執(zhí)行。
我們來看一個復(fù)合語句的例子。



【3.1】輸入3個實數(shù),要求按從小到大的順序輸出。

#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;
}
運行結(jié)果如下:



41667f74-a606-11ed-bfe3-dac502259ad0.png



分析:{k=x;x=z;z=k;}的作用是交換變量x和y的值,變量k為中間變量。 使用if語句的基本形式解決分支少于兩個的問題十分方便,而經(jīng)常遇到的是多于兩個分支,或者需要再多個不同條件下執(zhí)行不同語句的問題,這就需要掌握if語句的嵌套以及多分支結(jié)果。一個if語句中又包含一個或多個if語句的現(xiàn)象稱為if語句的嵌套。if語句的基本形式:if(表達(dá)式) 語句1;else 語句2;。其中“語句1”或“語句2”都可以嵌套另一個if語句,在缺省else部分的if語句中的“語句”也可以嵌套另一個if語句。在if語句嵌套的結(jié)構(gòu)中一定要注意else與if之間的對應(yīng)關(guān)系。為了避免二義性,在C語言中規(guī)定其對應(yīng)原則是:else總是與它前面最近的一個未匹配的if相匹配。



【4.1】輸入3個任意數(shù),找出其中的最大值。

#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;
}
運行結(jié)果如下:
418e7100-a606-11ed-bfe3-dac502259ad0.png



多分支if語句是最常用的實現(xiàn)多路分支的方法,其一般形式為:if(表達(dá)式1) 語句1;else if(表達(dá)式2)···else if(表達(dá)式n-1) 語句n-1;else 語句n;.


在C語言中還提供了一種switch語句也可以實現(xiàn)多分支的選擇。switch的一般形式為:switch(表達(dá)式){case 常量表達(dá)式1;語句1;break;case 常量表達(dá)式2;語句2;break;···case 常量表達(dá)式n;語句n;break;default:語句n+1;break;}



注意:1、switch后的表達(dá)式可以是任何表達(dá)式,其值只能為整型、字符型、枚舉型。2、每個case后面的常量表達(dá)式的值互不相同,否則會出現(xiàn)互相矛盾的現(xiàn)象。3、各個case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果。4、可以讓多個case共用一組執(zhí)行語句。5、switch語句允許嵌套使用。

審核編輯:湯梓紅
聲明:本文內(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

    文章

    11304

    瀏覽量

    209499
  • Switch
    +關(guān)注

    關(guān)注

    1

    文章

    533

    瀏覽量

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

    關(guān)注

    180

    文章

    7604

    瀏覽量

    136824
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3787

    瀏覽量

    81043
  • 字符
    +關(guān)注

    關(guān)注

    0

    文章

    233

    瀏覽量

    25208

原文標(biāo)題:從零開始跟我學(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í)行。我們來看一個例子,感受順序
    發(fā)表于 02-02 10:06 ?586次閱讀

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

    本帖最后由 igbt 于 2011-4-21 10:12 編輯 《從零開始學(xué)單片機(jī)C語言》是單片機(jī)入門教材。
    發(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é)單片機(jī)C語言——PDF

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

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

    `從零開始學(xué)單片機(jī)C語言,很全的資料需要的網(wǎng)盤里取從零開始學(xué)單片機(jī)
    發(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é)者都在看?。?b class='flag-5'>從零開始學(xué)單片機(jī)C語言從零開始學(xué)電子叢書】

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

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

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

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

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

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

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

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

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

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

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

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

    今天我們來講分支結(jié)構(gòu)。計算機(jī)在執(zhí)行程序時,通常都是按照語句的書寫順序執(zhí)行的,但在許多情況需要根據(jù)條件選擇所要執(zhí)行的語句,這就選擇所要的語句。C語言
    的頭像 發(fā)表于 02-06 10:14 ?924次閱讀

    從零開始跟我學(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 ?878次閱讀

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

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