【C语言笔记初级篇】第二章:分支与循环
目錄
(1)什么是語句
(2)分支語句
A:if語句
B:switch語句
(3)循環(huán)語句
A:while
B:for循環(huán)
C:do while循環(huán)
(4)goto語句
A:goto語句說明
B:goto 語句適合的場(chǎng)景
(1)什么是語句
C語言是一門結(jié)構(gòu)化程序設(shè)計(jì)語言:順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)
C語言中“;”隔開的就是一條語句
(2)分支語句
A:if語句
第一點(diǎn):if語句的基本結(jié)構(gòu)
第一:單分支
第二:雙分支
第三:多分支
?
第二點(diǎn):關(guān)于if語句的其他補(bǔ)充
第一:懸空if
else在匹配if時(shí),匹配的是離它最近的if,所以下面的代碼中,在閱讀上感覺要輸出“haha”,但是實(shí)際什么都不輸出,因?yàn)橄旅娴膃lse是和內(nèi)層的if匹配,它連第一個(gè)判斷都沒有進(jìn)去
所以代碼風(fēng)格一定要清晰,不能人為的產(chǎn)生歧義
第二:請(qǐng)?jiān)俨灰奄x值運(yùn)算符和比較運(yùn)算符搞混了
所以為了防止這樣的低級(jí)錯(cuò)誤,可以反著寫
B:switch語句
第一點(diǎn):switch語句的基本結(jié)構(gòu)
第二點(diǎn):關(guān)于switch的一些說明
第一:switch后面是整形,case后面必須是整形或整形表達(dá)式
第二:case后面不是任何時(shí)候都加break語句。比如下列情形:要求輸入1,2,3,4,5,中任意一個(gè)數(shù)字,則輸出工作日,6和7則輸出休息日。
第三點(diǎn):關(guān)于default的說明
第一:default和case的順序無關(guān),但建議放在后面
第二:計(jì)算需求中沒有用default的地方,良好的代碼風(fēng)格也應(yīng)該加上它
如下圖這段代碼,很好的體現(xiàn)了switch的執(zhí)行過程
接下來,逐過程運(yùn)行代碼
(3)循環(huán)語句
A:while
第一點(diǎn):while循環(huán)基本結(jié)構(gòu)
第二點(diǎn):while循環(huán)邏輯圖
第三點(diǎn):關(guān)于break和continue
break是用來跳出當(dāng)前循環(huán)
continue就是跳過某個(gè)循環(huán)變量,直接進(jìn)行判斷
?第四點(diǎn):經(jīng)典例子while
第一:利用while讀走緩沖區(qū)字符,使getchar接收到鍵盤上所輸入的字符
(注意,上述操作結(jié)束時(shí)要按"ctrl +z")
上面的實(shí)例究竟有什么用呢:如下要輸入一個(gè)輸入密碼的程序,問題在于程序?yàn)槭裁床辉賕etchar處等我們輸入Y或N后再進(jìn)行判斷,而是直接跳過了這一步驟
?
?那么解決方法很顯而易見,只要在getchar讀輸入緩沖區(qū)前,把里面的換行符讀走即可
?當(dāng)然上述的解決方法還是有限制的,只用于某些特殊情況。所以完美的解決方式就是用本實(shí)例所要說明的while循環(huán)
第二:只接受數(shù)字打印,非數(shù)字不打印
B:for循環(huán)
第一點(diǎn):for循環(huán)的基本結(jié)構(gòu)
第二點(diǎn):for循環(huán)邏輯圖
表達(dá)式1只會(huì)被執(zhí)行1次
第三點(diǎn):break和continue在for循環(huán)中的使用
break和continue使用基本一致
?
?第四點(diǎn):關(guān)于for循環(huán)的注意事項(xiàng)
第一:不要在for循環(huán)體內(nèi)改變循環(huán)變量
第二:建議for循環(huán)控制變量的取值采用“前閉后開”寫法
第三:for循環(huán)的初始化,調(diào)整,判斷都可以省略,其中判斷省略后條件恒為真(雖然各部分可以省略,但每一個(gè)部分都有存在的意義,所以隨意省略可能導(dǎo)致意想不到的錯(cuò)誤)
比如,下面省略了for循環(huán)的初始化
第四:for循環(huán)允許多個(gè)循環(huán)變量
C:do while循環(huán)
第一點(diǎn):do while循環(huán)的基本結(jié)構(gòu)
第二點(diǎn):do while循環(huán)的邏輯結(jié)構(gòu)
第三點(diǎn):do while中的break和continue
do while中continue仍然會(huì)導(dǎo)致死循環(huán)
(4)goto語句
A:goto語句說明
C語言中提供了可以隨意濫用的goto語句額標(biāo)記跳轉(zhuǎn)的符號(hào),從理論上來說goto語句是沒有必要的,但是在某些特定場(chǎng)合下也會(huì)使用到goto語句,最常見的就是處理某些深度嵌套的語句,使用goto語句可以一次跳出多個(gè)循環(huán),而在這樣的情況下使用break'是達(dá)不到,因?yàn)閎reak只能跳出一層。
如下:可以使用go循環(huán)打印
?
由以上可以看出,使用goto語句可以使程序隨意跳轉(zhuǎn),也就極易造成代碼邏輯混亂
B:goto 語句適合的場(chǎng)景
特別適合這種深層次嵌套
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的【C语言笔记初级篇】第二章:分支与循环的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: modelsim仿真中遇到的问题
- 下一篇: 各种Camera,总有一款适合你(二)