一文詳解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ì)算星期幾的名稱(chēng):
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語(yǔ)言實(shí)現(xiàn)計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了用C語(yǔ)言實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
C語(yǔ)言實(shí)現(xiàn)切片數(shù)組的示例詳解
由于c語(yǔ)言沒(méi)有集合類(lèi)的標(biāo)準(zhǔn)庫(kù),需要用時(shí)只能自己實(shí)現(xiàn),所以本文參考了go語(yǔ)言的slice,找到了一種非常簡(jiǎn)化的動(dòng)態(tài)數(shù)組接口,下面我們就來(lái)看看如何在C語(yǔ)言中實(shí)現(xiàn)切片吧2024-03-03
C利用語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)之隊(duì)列
隊(duì)列 (Queue):簡(jiǎn)稱(chēng)隊(duì),是另一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素。q=(a1, a2, a3, … an),其中a1為隊(duì)頭,an為隊(duì)尾,下面文章小編將為大家詳細(xì)介紹,需要的下伙伴可以參考一下2021-10-10
C++中實(shí)現(xiàn)OpenCV圖像分割與分水嶺算法
分水嶺算法是一種常用的圖像區(qū)域分割法,本文主要介紹了OpenCV圖像分割與分水嶺算法,使用C++實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2021-06-06

