他輸出的是b和c什么情況
#include <stdio.h>
int main()
{
??? int score = 87; //考試分數為87分
???
??? switch(score /= 10)
??? {
??????? /*想想以下代碼為什么用這種方式;
????????? 這種方式的好處?*/
?????????
??????? case 10:
??????? case 9:
??????????? printf("等級A");
??????????? break;
??????? case 8:
??????????? printf("等級B");
?????????? score /= 10;?????????? //這里是不是缺點什么????????????
??????? case 7:
??????? case 6:
??????????? printf("等級C");
??????????? break;??????????? //這里是不是缺點什么??
??????? default:
??????????? printf("等級D");
??????????? break;???
??? }
??? return 0;
}
2019-05-17
執行switch代碼塊時score的值是8,
與15行case 8匹配,所以輸出后面的“等級B”,
然后接著執行后面的語句而無需匹配case 后面的值,直到遇到break才會跳出switch語句,
如果沒有第21行的break,“等級D”也會輸出來,講解的第二條說的就是這個。