? 在語(yǔ)句switch中,輸入的字符及case后面的數(shù)據(jù)必須為整型枚舉常量或整數(shù)表達(dá)式,如該程序中:
#includeint main()
{
int n=2;
switch(n)
{
case 1:
printf("星期一");
break;
case 1+1:
printf("星期二");
break;
default:
break;
}
return 0;
}
?常量n可以為任意整型數(shù),case后面也可以為如“1+1”一類的整數(shù)表達(dá)式,但一旦使用非整型則會(huì)報(bào)錯(cuò)。
?break是switch語(yǔ)句中的結(jié)束跳出詞,而其所跳出的只是其所在一個(gè)switch語(yǔ)句。當(dāng)一個(gè)switch語(yǔ)句中沒(méi)有break的時(shí)候,其會(huì)從輸入的case開(kāi)始一直往后執(zhí)行,直到遇到break或該switch語(yǔ)句結(jié)束為止。就如同該程序段:
#includeint main()
{
int n=2;
switch(n)
{
case 1:
printf("星期一");
case 2:
printf("星期二");
case 3:
printf("星期三");
case 4:
printf("星期四");
case 5:
printf("星期五");
case 6:
printf("星期六");
case 7:
printf("星期天");
default:
break;
}
return 0;
}
由于n=2,所以其輸出的結(jié)果就跳過(guò)了星期一,從“星期二”開(kāi)始輸出一直到該switch語(yǔ)句結(jié)束——星期二星期三星期四星期五星期六星期天。
?如果在case:4之前加上一個(gè)break,則輸出結(jié)果僅為“星期二星期三”
#includeint main()
{
int n=2;
switch(n)
{
case 1:
printf("星期一");
case 2:
printf("星期二");
case 3:
printf("星期三");
break;
case 4:
printf("星期四");
case 5:
printf("星期五");
case 6:
printf("星期六");
case 7:
printf("星期天");
default:
break;
}
return 0;
}
switch語(yǔ)句是可以進(jìn)行嵌套使用的,而在嵌套中就要格外注意break退出的是哪個(gè)語(yǔ)句了,就如這個(gè)程序:
#includeint main()
{
int n=1,m=2;
switch(n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch(n)
{
case 1:
n++;
case 2:
m++;
n++:
break;
default:
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m=%d,n=%d\n",m,n);
return 0;
}
該程序輸出結(jié)果為:m=5,n=3。其原因就是break第一次退出只是退出嵌套進(jìn)去的那一個(gè)switch,然后繼續(xù)往下面進(jìn)行。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧