首先,先熟悉壹下switch裏常見邏輯
case標簽後無break;則向下壹個case標簽後的語句執行,例如文中case 1:s+=1;沒有break;則會繼續向下執行case 2的內容。如果是case 4則會跳出。
好,來分析壹下,壹***3次循環
for(n=0;n<3;n++){
switch(s)
{
case?0:
case?1:s+=1;
case?2:s+=2;break;
case?3:s+3;
case?4:s+=4;
}
printf("%d\n",s);
}
第壹次循環,s為0,依次執行標簽0,1,2 也就是s+=1,s+=2後,得到s為3
第二次循環,s為3,依次執行的標簽為3,4 也就是s+3(這步沒有對自身賦值,可以忽略),s+=4,後,得到s為7
第三次循環,s為10,無該項,s為7
最終得到3,7,7而不是3,10,14
希望對妳有幫助,測試環境為TC2.0與VC6.0,均為此答案