最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中的分支語句用法解讀

 更新時(shí)間:2025年05月06日 08:45:22   作者:wzsygcg  
這篇文章主要介紹了C語言中的分支語句用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

前言

C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,其由三大基本結(jié)構(gòu)組成,分別為:順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu),它們組成的算法結(jié)構(gòu)可以解決任何復(fù)雜的問題。

對(duì)于順序結(jié)構(gòu)指的就是從main函數(shù)入口開始,從頭到尾依次執(zhí)行代碼。

對(duì)于選擇結(jié)構(gòu),顧名思義就是進(jìn)行選擇,其有兩種語句:

1.if語句

1.1 if語句的語法形式

if(表達(dá)式)

語句

1.2 if語句用法

例:輸入一個(gè)整數(shù),判斷是否為奇數(shù)

由于表達(dá)式判斷的依據(jù)為真,若為非0值,則執(zhí)行語句,為0,則不執(zhí)行語句,所以奇數(shù)判斷依據(jù) a%2==1 可以略為 a%2.

由上我們可以不由的想,若需要判斷出偶數(shù)呢?

這就涉及到了if..else語句了

2.if..else語句

2.1 if...else語句的語法形式

  • if(表達(dá)式)
  • 語句1
  • else
  • 語句2

2.2應(yīng)用

1.對(duì)上文的代碼進(jìn)行完善

2.輸??個(gè)年齡,>= 18歲就輸出:成年,否則就輸出:未成年

若我們要更加細(xì)致的區(qū)分不同年齡段的稱謂,我們就需要多條的if...else語句進(jìn)行連用,即

3.嵌套if語句

if else語句可以進(jìn)行連用構(gòu)成多重判斷。

3.1例

輸??個(gè)?的年齡 ,如果年齡<18歲,打印"少年" ,如果年齡在18歲?44歲打印"?年" ,如果年齡在45歲?59歲打印"中?年" ,如果年齡在60歲?89歲打印"?年" ,如果90歲及以上打印"?壽星"。

常見編譯錯(cuò)誤1

問題:

修改后:

4.懸空else問題

對(duì)于這個(gè)問題,我們需要知道一個(gè)規(guī)則--else總是與最接近的if匹配

例:

對(duì)于上圖代碼,最后輸出的結(jié)果是什么呢?

結(jié)果其實(shí)是沒有輸出的,這就是典型的懸空else問題。加了大括號(hào)后會(huì)便于理解,由于else總是與最接近的if匹配,所以在 a=0 的情況下,是不符合if表達(dá)式中條件的,故不會(huì)有輸出。

由此可知,適當(dāng)?shù)募由洗罄ㄌ?hào)會(huì)使得代碼的可讀性高,邏輯更清晰。

當(dāng)然,大括號(hào)還會(huì)改變與else最接近的if語句,如:

這樣就會(huì)輸出 haha 。

5.關(guān)系操作符

> ,>= , < , <= , == , !=

以上都是關(guān)系操作符,其返回 0\1 ,0表示假,1表示真。

常見編譯錯(cuò)誤2. 要注意區(qū)別 == 與 = ,== 是表示相等,若 A==B 表示A與B的值相等,但若是 A = B 則是表示將B賦值給A,兩者不能混淆。

溫馨小提示:若當(dāng)一個(gè)變量與一個(gè)常量比較相等時(shí),建議將常量值放在 == 的左邊,這樣在寫錯(cuò)了== 之后編譯器會(huì)進(jìn)行報(bào)錯(cuò),便于檢查代碼。但若是將常量值位于 == 右邊則不會(huì)出現(xiàn)該報(bào)錯(cuò),但程序最后的結(jié)果時(shí)錯(cuò)誤的。

常見編譯錯(cuò)誤3.關(guān)系運(yùn)算符不宜連用,會(huì)導(dǎo)致程序結(jié)果出錯(cuò)

上圖就出現(xiàn)了錯(cuò)誤,其執(zhí)行流程是這樣的:

先是a與47進(jìn)行比較,得出0,后0與100進(jìn)行比較,得出1,結(jié)果為真,返回 hehe。

那在C語言中如何表達(dá) 47<=a<=100?這就需要使用到邏輯操作符。

6. 邏輯操作符

  • && :邏輯或 ---真真為真(真就是非0)
  • || :邏輯與 ---假假為假(假就是0)
  • !:邏輯非 ---改變單個(gè)表達(dá)式的真假

所以就可以表示為 47<=a&&a<=100 ; 若要表示 a<=47或 a>=100,則就是 a<=47||a>=100;

若要表示a不等于47,就是 a!=47。

例:輸入年數(shù),判斷是不是閏年

7.短路

在C語言邏輯運(yùn)算中有一個(gè)特點(diǎn),都是先對(duì)左側(cè)的表達(dá)式求值,再對(duì)右側(cè)的表達(dá)式求值,其順序是固定的,所以在左側(cè)的表達(dá)式已經(jīng)符合邏輯運(yùn)算符的條件的時(shí)候,右側(cè)的表達(dá)式將不會(huì)被執(zhí)行,這就是短路

例:

1.&&的短路

由于a++是先使用,再+1,所以當(dāng)a=0的時(shí)候進(jìn)行計(jì)算,故左側(cè)表達(dá)式為假,所以右側(cè)的表達(dá)式不會(huì)進(jìn)行計(jì)算,由此輸出 1 4 5 0。

2.||的短路

同理,由于a++和c++的計(jì)算結(jié)果為真(1),所以后面的b++不會(huì)被計(jì)算了,最后輸出 1 4 6 1。

8..條件操作符

是C語言中唯一的三目操作符,其形式為:

例:比較兩個(gè)數(shù)的大小

9.switch語句

9.1 switch語句是一種特殊的if...else 結(jié)構(gòu),適用于判斷條件有多少個(gè)結(jié)果的情況。提高了代碼的可讀性,更方便使用。

9.2 switch語句的語法構(gòu)

switch(整型/字符型表達(dá)式)

{

case(整型常量表達(dá)式1):(語句)

default:(語句)

}

根據(jù)表達(dá)式計(jì)算出的不同值,程序?qū)?huì)執(zhí)行不同的case語句。若是找不到對(duì)應(yīng)的case語句,就會(huì)執(zhí)行default分支。

例:1.

2.輸??個(gè)1~7的數(shù)字,打印對(duì)應(yīng)的星期?

例如:

  • 輸?:1 輸出:星期?
  • 輸?:2 輸出:星期?
  • 輸?:3 輸出:星期三
  • 輸?:4 輸出:星期四
  • 輸?:5 輸出:星期五
  • 輸?:6 輸出:星期六
  • 輸?:7 輸出:星期天

變題:

1. 輸?1~5,輸出的是“?作?”;

2. 輸?6~7,輸出“休息?”.

若用戶輸入的不是1-7的數(shù)字該如何編寫代碼?

這時(shí)就可以借助default了。

switch語句中的case子句和default子句是沒有順序要求的,只要滿足實(shí)際需求就行。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

清原| 平舆县| 肃宁县| 磴口县| 商都县| 恭城| 建始县| 临湘市| 普宁市| 封丘县| 合川市| 布尔津县| 夏邑县| 天等县| 沿河| 松潘县| 广水市| 永吉县| 延川县| 城口县| 葫芦岛市| 钟山县| 永修县| 黑河市| 星子县| 西青区| 郎溪县| 三门峡市| 嵩明县| 华蓥市| 青川县| 琼中| 宁远县| 堆龙德庆县| 舟山市| 托里县| 甘谷县| 棋牌| 镇康县| 镇巴县| 福清市|