程序实现switch语句判断年龄_【回顾】(选择执行语句if else和switch)乐创DIY C语言讲义——3.8节(4)...
生活随笔
收集整理的這篇文章主要介紹了
程序实现switch语句判断年龄_【回顾】(选择执行语句if else和switch)乐创DIY C语言讲义——3.8节(4)...
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文?? ?|? ? Edward
4 選擇執(zhí)行語(yǔ)句有些時(shí)候,我們希望程序既不順序執(zhí)行,也不只做單一的判斷(代碼運(yùn)行還是不運(yùn)行),很多時(shí)候,我們往往只希望對(duì)某一個(gè)條件的不同狀態(tài)分別執(zhí)行不同的語(yǔ)句,這樣就構(gòu)成C語(yǔ)言中的選擇執(zhí)行語(yǔ)句了。C語(yǔ)言中的選擇執(zhí)行語(yǔ)句有兩種實(shí)現(xiàn)方式,一種是使用前面所說(shuō)的“if …… else”形式,還有一種是使用“switch …… case”的形式,這種形式在有些地方也被稱(chēng)為“開(kāi)關(guān)語(yǔ)句”。選擇執(zhí)行語(yǔ)句的執(zhí)行順序圖如圖3-8-14所示。圖3-8-14 選擇執(zhí)行語(yǔ)句結(jié)構(gòu)(1)“if ……else ……”選擇語(yǔ)句if語(yǔ)句的用法我們之前已經(jīng)詳細(xì)地討論過(guò),它是表示判斷某一條件是否需要被執(zhí)行的一種語(yǔ)句,但是,如果在if后面加了else之后,它們整體的意思就有改變了,就變成兩個(gè)條件里面一定要運(yùn)行一個(gè)這樣子的二選一形式了,有點(diǎn)類(lèi)似于我們要說(shuō)的,“要么怎么樣,否則怎么樣”這樣子的形式。if……else……的一般形式如下所示:表達(dá)式如果成立,就運(yùn)行下面的執(zhí)行語(yǔ)句,否則就運(yùn)行else里面的執(zhí)行語(yǔ)句。還是舉字符判斷的例子來(lái)說(shuō),輸入一個(gè)字符,如果是字母就將其打印出來(lái),如果是數(shù)字,就打印Good bye。此時(shí)這里的判斷條件就是這個(gè)輸入的字符要大于0的ASCII碼,并且要小于9的ASCII碼,因此我們可以寫(xiě)出如圖3-8-15的代碼。圖3-8-15字符判斷代碼看到這里,有疑問(wèn)的讀者可能會(huì)問(wèn)了,圖3-8-15中的例子只是判斷數(shù)字和字符,那萬(wàn)一我們要判斷大寫(xiě)字母,小寫(xiě)字母,數(shù)字和其他字符呢?這種互斥邏輯的程序貌似不夠用。這里,C語(yǔ)言還提供了另一種if……else if……else的多入口選擇執(zhí)行語(yǔ)句,其一般形式為:如果條件1滿(mǎn)足,就執(zhí)行條件1里面的程序語(yǔ)句,如果條件2滿(mǎn)足,就執(zhí)行條件2里面的程序,……,如果上述條件都不滿(mǎn)足,就執(zhí)行else里面的語(yǔ)句。這里要注意,一般這種邏輯下,最后一個(gè)else里面的內(nèi)容不要省略,因此大家在使用這種形式的時(shí)候,要充分考慮到這些關(guān)系的邏輯性,以及互斥性。現(xiàn)在我們就可以利用這種程序架構(gòu)來(lái)設(shè)計(jì)一個(gè)程序,用以區(qū)分輸入字符是大寫(xiě)字母,小寫(xiě)字母,數(shù)字還是其他字符了,其代碼如圖3-8-16所示。圖3-8-16 判斷輸入字符類(lèi)型
if和else構(gòu)成的選擇執(zhí)行語(yǔ)句是單入口的,這里要注意下,哪怕我們?cè)诘谝粋€(gè)if里面修改條件值,使它滿(mǎn)足第二個(gè)if……else入口,這個(gè)程序也不會(huì)跳進(jìn)去,這里大家需要注意下,測(cè)試代碼如圖3-8-17所示。圖3-8-17??if……else單入口測(cè)試圖3-8-17所示,首先定義一個(gè)number變量并給它賦值,使之滿(mǎn)足if的第一個(gè)條件,在第一個(gè)條件中將number賦值,使之滿(mǎn)足第二個(gè)條件入口,依次類(lèi)推,結(jié)果程序運(yùn)行完成后,我們可以發(fā)現(xiàn),不管這個(gè)number的值怎么被修改,它只不過(guò)在最開(kāi)始滿(mǎn)足的第一個(gè)入口處運(yùn)行。(2)“switch? …… case ……”開(kāi)關(guān)語(yǔ)句“switch ?…… case ……”又被稱(chēng)為開(kāi)關(guān)語(yǔ)句,它的一般形式為:這里需要注意的是,switch后面的表達(dá)式返回值必須為整數(shù),變量也必須為整數(shù)。而下面case后面的值表示的是表達(dá)式的狀態(tài),它們千萬(wàn)不能重復(fù),最后的default表示的是不滿(mǎn)足上面任意一個(gè)case時(shí)的情況,可以不加,但是為了程序的嚴(yán)謹(jǐn)性,一般在使用時(shí)都加上去。以上就是對(duì)switch語(yǔ)句的介紹,好了現(xiàn)在讓我們用switch語(yǔ)句寫(xiě)個(gè)簡(jiǎn)單的測(cè)試程序吧,對(duì)一個(gè)輸入的數(shù)值,如果輸入1則打印one,依次類(lèi)推。這個(gè)程序的思想很簡(jiǎn)單,先獲取輸入的值,如果是任意一個(gè)數(shù)字,就跳到相應(yīng)的case入口中,執(zhí)行不同的打印,如圖3-8-18所示。圖3-8-18 數(shù)字打印在我們寫(xiě)完代碼之后,發(fā)現(xiàn)程序并沒(méi)有按照我們預(yù)期的運(yùn)行結(jié)果去運(yùn)行,我們明明輸入了一個(gè)4,按理來(lái)說(shuō)應(yīng)該就打印出一個(gè)four,現(xiàn)在這個(gè)程序把4之后的所有內(nèi)容都打印出來(lái)了。這個(gè)就是switch語(yǔ)句的特性,只規(guī)定入口,而沒(méi)有規(guī)定出口,上述程序中字符‘4‘是一個(gè)入口,條件滿(mǎn)足了,進(jìn)去之后,就把以下的程序都執(zhí)行了。因此我們需要在程序進(jìn)入入口后,執(zhí)行完相應(yīng)的程序,馬上退出這個(gè)開(kāi)關(guān)語(yǔ)句,而前面我們說(shuō)了,C語(yǔ)言中有一個(gè)關(guān)鍵詞,可以里面控制程序的跳出,這個(gè)就是break。綜上所述,圖3-8-18中的代碼應(yīng)該改成圖3-8-19中所呈現(xiàn)的代碼。圖3-8-19 數(shù)字打印正確程序其實(shí)switch之規(guī)定入口而沒(méi)規(guī)定出口是合理的,因?yàn)楹芏喑绦蚩赡苄枰卸鄠€(gè)入口,這個(gè)在后面我們會(huì)經(jīng)常用到。C語(yǔ)言中還有最后一種程序執(zhí)行方式,即跳轉(zhuǎn)執(zhí)行,這種方式由于有不確定的安全性,因此早就已經(jīng)退出主流編程界,本書(shū)不討論,有興趣可以自己去搜資料,非常簡(jiǎn)單,一看就會(huì)。 與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的程序实现switch语句判断年龄_【回顾】(选择执行语句if else和switch)乐创DIY C语言讲义——3.8节(4)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 树如何找共同祖先_如何找到任何二叉树中两
- 下一篇: hanlp是开源的吗_自然语言处理之:搭