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)樗昂雎浴绷?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;
}
最后
為了方便其他設(shè)備和平臺(tái)的小伙伴觀看往期文章:
微信公眾號(hào)搜索:Let us Coding
,關(guān)注后即可獲取最新文章推送文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-760417.html
看完如果覺(jué)得有幫助,歡迎 點(diǎn)贊、收藏、關(guān)注文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-760417.html
到了這里,關(guān)于C 語(yǔ)言中的 switch 語(yǔ)句和 while 循環(huán)詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!