一文詳解C語(yǔ)言中的switch語(yǔ)句和while循環(huán)
C 語(yǔ)言中的 switch 語(yǔ)句
替代多重 if..else 語(yǔ)句,可以使用 switch
語(yǔ)句。switch
語(yǔ)句用于選擇多個(gè)代碼塊中的一個(gè)來(lái)執(zhí)行
switch(表達(dá)式) { case x: // 代碼塊 break; case y: // 代碼塊 break; default: // 代碼塊
工作原理
switch
表達(dá)式只會(huì)被計(jì)算一次- 表達(dá)式的值與每個(gè)
case
的值進(jìn)行比較 - 如果找到匹配,則執(zhí)行相應(yīng)的代碼塊
break
語(yǔ)句用于跳出switch
塊并停止執(zhí)行default
語(yǔ)句是可選的,如果找不到匹配的case
,則執(zhí)行它指定的代碼
下面的示例使用星期幾的數(shù)字來(lái)計(jì)算星期幾的名稱:
int day = 4; switch (day) { case 1: printf("星期一"); break; case 2: printf("星期二"); break; case 3: printf("星期三"); break; case 4: printf("星期四"); break; case 5: printf("星期五"); break; case 6: printf("星期六"); break; case 7: printf("星期日"); break; } // 輸出 "星期四" (星期 4)
break
關(guān)鍵字:
- 當(dāng) C 遇到
break
關(guān)鍵字時(shí),它會(huì)跳出switch
塊。 - 這將停止執(zhí)行更多代碼和塊內(nèi)部的
case
測(cè)試。 - 當(dāng)找到匹配項(xiàng)并完成任務(wù)時(shí),就該休息了。沒(méi)有必要進(jìn)行更多測(cè)試。
break
可以節(jié)省大量的執(zhí)行時(shí)間,因?yàn)樗?ldquo;忽略”了switch
塊中所有其他代碼的執(zhí)行。
default
關(guān)鍵字:
default
關(guān)鍵字用于指定在找不到case
匹配時(shí)要運(yùn)行的代碼:
int day = 4; switch (day) { case 6: printf("今天是星期六"); break; case 7: printf("今天是星期日"); break; default: printf("期待周末"); } // 輸出 "期待周末"
C 語(yǔ)言中的 while 循環(huán)
循環(huán)
循環(huán)可以執(zhí)行一段代碼,只要滿足指定的條件。循環(huán)非常方便,因?yàn)樗鼈兛梢怨?jié)省時(shí)間、減少錯(cuò)誤并使代碼更易于閱讀。
while
循環(huán)
只要指定的條件為真,while
循環(huán)就會(huì)一直循環(huán)執(zhí)行一段代碼塊:
語(yǔ)法:
while (條件) { // 要執(zhí)行的代碼塊 }
在下面的示例中,只要一個(gè)變量 (i
) 小于 5,循環(huán)中的代碼就會(huì)一遍又一遍地運(yùn)行:
示例
int i = 0; while (i < 5) { printf("%d\n", i); i++; }
注意: 不要忘記增加用于條件的變量 (i++
),否則循環(huán)將永遠(yuǎn)不會(huì)結(jié)束!
do/while
循環(huán)
do/while
循環(huán)是 while
循環(huán)的一個(gè)變體。這個(gè)循環(huán)會(huì)在檢查條件是否為真之前先執(zhí)行一次代碼塊,然后只要條件為真,就會(huì)重復(fù)該循環(huán)。
語(yǔ)法:
do { // 要執(zhí)行的代碼塊 } while (條件);
下面的示例使用了一個(gè) do/while
循環(huán)。即使條件為假,循環(huán)也至少會(huì)執(zhí)行一次,因?yàn)榇a塊是在測(cè)試條件之前執(zhí)行的:
示例
int i = 0; do { printf("%d\n", i); i++; } while (i < 5);
不要忘記增加用于條件的變量,否則循環(huán)將永遠(yuǎn)不會(huì)結(jié)束!
現(xiàn)實(shí)生活中的例子
為了展示 while
循環(huán)的實(shí)際例子,我們可以創(chuàng)建一個(gè)簡(jiǎn)單的“倒計(jì)時(shí)”程序:
示例
int countdown = 3; while (countdown > 0) { printf("%d\n", countdown); countdown--; } printf("新年快樂(lè)!\n");
為了展示 while
循環(huán)結(jié)合 if else
語(yǔ)句的實(shí)際例子,假設(shè)我們玩一個(gè) Yahtzee 游戲!
示例
如果骰子數(shù)字為 6,則打印“Yahtzee!”:
int dice = 1; while (dice <= 6) { if (dice < 6) { printf("沒(méi)有 Yahtzee\n"); } else { printf("Yahtzee!\n"); } dice = dice + 1; }
最后
以上就是一文詳解C語(yǔ)言中的switch語(yǔ)句和while循環(huán)的詳細(xì)內(nèi)容,更多關(guān)于C語(yǔ)言switch語(yǔ)句和while循環(huán)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C++中如何實(shí)現(xiàn)回調(diào)的方法示例
這篇文章主要給大家介紹了關(guān)于C++中如何實(shí)現(xiàn)回調(diào)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用c++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10C++線程優(yōu)先級(jí)SetThreadPriority的使用實(shí)例
這篇文章主要介紹了C++線程優(yōu)先級(jí)SetThreadPriority的使用實(shí)例,較為詳細(xì)的講述了C++線程及其優(yōu)先級(jí)的用法,需要的朋友可以參考下2014-10-10C++發(fā)送HTTP請(qǐng)求的實(shí)現(xiàn)代碼
這篇文章主要介紹了C++發(fā)送HTTP請(qǐng)求的實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-06-06簡(jiǎn)單了解C語(yǔ)言中直接插入排序與直接選擇排序?qū)崿F(xiàn)
這篇文章主要介紹了C語(yǔ)言中直接插入排序與直接選擇排序?qū)崿F(xiàn),插入排序的基本操作就是將一個(gè)數(shù)據(jù)插入到已經(jīng)排好序的有序數(shù)據(jù)中,從而得到一個(gè)新的、個(gè)數(shù)加一的有序數(shù)據(jù),需要的朋友可以參考下2016-03-03