C語(yǔ)言學(xué)習(xí)筆記:switch語(yǔ)句篇

switch(條件){
case? 1:執(zhí)行1;break;
case? 2:執(zhí)行1;break;
default:若輸入的不是1,2,3,則執(zhí)行這部分
}
switch語(yǔ)句用法詳解:
switch(表達(dá)式){?
? ? case 常量表達(dá)式1:? 語(yǔ)句1;
? ? case 常量表達(dá)式2:? 語(yǔ)句2;
? ? …?
? ? case 常量表達(dá)式n:? 語(yǔ)句n;
? ? default:? 語(yǔ)句n+1;
}
意思是先計(jì)算表達(dá)式的值,再逐個(gè)和case 后的常量表達(dá)式比較,若不等則繼續(xù)往下比較,若一直不等,則執(zhí)行default后的語(yǔ)句;若等于某一個(gè)常量表達(dá)式,則從這個(gè)表達(dá)式后的語(yǔ)句開(kāi)始執(zhí)行,并執(zhí)行后面所有case后的語(yǔ)句。
與if語(yǔ)句的不同:If語(yǔ)句中若判斷為真則只執(zhí)行這個(gè)判斷后的語(yǔ)句,執(zhí)行完就跳出if語(yǔ)句,不會(huì)執(zhí)行其他if語(yǔ)句;
而switch語(yǔ)句不會(huì)在執(zhí)行判斷為真后的語(yǔ)句之后跳出循環(huán),而是繼續(xù)執(zhí)行后面所有case語(yǔ)句。在每一case語(yǔ)句之后增加break 語(yǔ)句,使每一次執(zhí)行之后均可跳出switch語(yǔ)句,從而避免輸出不應(yīng)有的結(jié)果。
?
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n"); break;
case 2:printf("Tuesday\n"); break;
case 3:printf("Wednesday\n"); break;
case 4:printf("Thursday\n"); break;
case 5:printf("Friday\n"); break;
case 6:printf("Saturday\n"); break;
case 7:printf("Sunday\n"); break;
default:printf("error\n");
}
注意:
? ? ? ? ?1.case后的常量表達(dá)式不能相同;
? ? ? ? ?2. case后的語(yǔ)句可以有多個(gè)且不用花括號(hào)括起來(lái);
? ? ? ? ? 3.case和default子句的先后順序可以先后變動(dòng),default子句可以省略不用;