不懂不懂真不懂
#include <stdio.h>
int main()?
{
? ? int score = 87; //考試分?jǐn)?shù)為87分?
? ??
? ? switch(score=score/10)
? ? {
? ? ? ? /*想想以下代碼為什么用這種方式;
? ? ? ? ? 這種方式的好處?*/
? ? ? ? case 10:
? ? ? ? case 9:
? ? ? ? ? ? printf("等級A");
? ? ? ? ? ? break;
? ? ? ? case 8:
? ? ? ? ? ? printf("等級B");
? ? ? ? ? ? score/=10;?
? ? ? ? ? ? break;//這里是不是缺點(diǎn)什么?? ? ? ? ? ??
? ? ? ? case 7:
? ? ? ? case 6:?
? ? ? ? ? ? printf("等級C");
? ? ? ? ? ? ? break;? ? ? ? ? ? ? //這里是不是缺點(diǎn)什么???
? ? ? ? default:
? ? ? ? ? ? printf("等級D");
? ? ? ? ? ? break;? ??
? ? }
? ? return 0;
}
為什么要在case 8的循環(huán)下加入一個“score /= 10;”呢?如果不加這一條輸出結(jié)果依然是“等級B”,加與不加的區(qū)別是什么呢?
2019-04-23
case 8 那里 正確答案是沒有score/=10的
講問題:先判斷是哪段case 然后printf 顯示出來是等級B 然后8.7再除以10 結(jié)果是0.87 但是printf已經(jīng)判斷過了 所以輸出結(jié)果依然是等級B。
如果這段switch之后再寫一段判斷 0.87會判斷為等級D