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

switch(條件){
case ?1:執(zhí)行1;break;
case ?2:執(zhí)行1;break;
default:輸入的不是1,2,則執(zhí)行這
}
switch語句用法詳解
switch(表達(dá)式){?
? ? case 常量表達(dá)式1: ?語句1;
? ? case 常量表達(dá)式2: ?語句2;
? ? …?
? ? case 常量表達(dá)式n: ?語句n;
? ? default: ?語句n+1;
}
意思是先計算表達(dá)式的值,再逐個和case 后的常量表達(dá)式比較,若不等則繼續(xù)往下比較,若一直不等,則執(zhí)行default后的語句;若等于某一個常量表達(dá)式,則從這個表達(dá)式后的語句開始執(zhí)行,并執(zhí)行后面所有case后的語句。
與if語句的不同:If語句中若判斷為真則只執(zhí)行這個判斷后的語句,執(zhí)行完就跳出if語句,不會執(zhí)而switch語句不會在執(zhí)行判斷為真后的語句之后跳出循環(huán),而是繼續(xù)執(zhí)行后面所有case語句。在每一case語句之后增加break 語句,?使每一次執(zhí)行之后均可跳出switch語句,從而避免輸出不應(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后的語句可以有多個且不用花括號括起來;
? ? ? ? ? 3.case和default子句的先后順序