為什么不對(duì)?
#include <stdio.h>
int main()?
{
? ? int score = 87; //考試分?jǐn)?shù)為87分?
? ??
? ? switch(score)
? ? {
? ? ? ? /*想想以下代碼為什么用這種方式;
? ? ? ? ? 這種方式的好處?*/
? ? ? ??
? ? ? ? case 1:
? ? ? ? ? ? score>=90&&score<=100;
? ? ? ? ? ? printf("等級(jí)A");
? ? ? ? ? ? break;
? ? ? ? case 2:
? ? ? ? ? ? score>=80&&score<=90;
? ? ? ? ? ? printf("等級(jí)B");
? ? ? ? ? ? break; ? ? ? ? ? ? ? ?//這里是不是缺點(diǎn)什么? ? ? ? ? ? ?
? ? ? ??
? ? ? ? case 3:
? ? ? ? ? ? score>=60&&score<80;
? ? ? ? ? ? printf("等級(jí)C");
? ? ? ? ? ? break; ? ? ? ? ? ? ? ?//這里是不是缺點(diǎn)什么? ?
? ? ? ? default:
? ? ? ? ? ? score<60;
? ? ? ? ? ? printf("等級(jí)D");
? ? ? ? ? ? break; ? ?
? ? }
? ? return 0;
}
2016-08-14
score = score/10;選項(xiàng)展開(kāi)只有10個(gè)。0~59可以簡(jiǎn)化為一個(gè)選項(xiàng)。只需要六個(gè)結(jié)果選擇就可以了。而你選擇,沒(méi)有score/=10;。當(dāng)然也可以,不過(guò)你要有42個(gè)選項(xiàng)。
#include <stdio.h>
int main()?
{
? ? int score = 87; ?
? ? score/=10;
? ? switch(score)
? ? {
? ? ? ? case ?0:printf("等級(jí)D");break; ? ? ? ? ? ? ??
? ? ? ? case ?1:printf("等級(jí)D");break;
? ? ? ? case ?2:printf("等級(jí)D");break;
? ? ? ? case ?3:printf("等級(jí)D");break; ? ? ? ? ? ? ?
? ? ? ? case ?4:printf("等級(jí)D");break;
? ? ? ? case ?5:printf("等級(jí)D");break; ? ? ? ? ? ? ??
? ? ? ? case ?6:printf("等級(jí)C");break; ? ? ? ? ? ? ??
? ? ? ? case ?7:printf("等級(jí)C");break; ? ? ? ? ? ? ??
? ? ? ? case ?8:printf("等級(jí)B");break; ? ? ? ? ? ? ??
? ? ? ? case ?9:printf("等級(jí)A");break; ? ? ? ? ? ? ??
? ? ? ? case ?10:printf("等級(jí)A");break; ? ? ? ? ? ? ??
? ? ? ? default:printf("等級(jí)D");break; ? ?
? ? }
? ? return 0;
}
#include <stdio.h>
int main()?
{
? ? int score = 87; ?
? ? score/=10;
? ? switch(score)
? ? {
? ? ? ? case 10:printf("等級(jí)A");break;
? ? ? ? case ?9:printf("等級(jí)A");break;
? ? ? ? case ?8:printf("等級(jí)B");break; ? ? ? ? ? ? ?
? ? ? ? case ?7:printf("等級(jí)C");break;
? ? ? ? case ?6:printf("等級(jí)C");break; ? ? ? ? ? ? ??
? ? ? ? default:printf("等級(jí)D");break; ? ?
? ? }
? ? return 0;
}
90<=分?jǐn)?shù)<=100 ,等級(jí)為A。已知最高分為100.
int score = 87; ?整形數(shù)變量score被賦值應(yīng)在0~100之間。
score/=10; ? ?score為整形數(shù)除以十舍棄小數(shù)點(diǎn)及小數(shù)點(diǎn)以后數(shù)字。score = 8 被賦值8。
switch(score) ?理解為 ?switch(score ?8)
case ?8:printf("等級(jí)B"); ?對(duì)應(yīng)輸出?等級(jí)B ,并?break; ?結(jié)束循環(huán)。
如果不在幾個(gè)選項(xiàng),即(??case 10: ??case ?9:……8:……7:……6:)中。那么輸出default:printf("等級(jí)D");break;?
在switch語(yǔ)句中,?switch ,break ?,default。應(yīng)同時(shí)出現(xiàn)。所以switch不是用判斷結(jié)束的,是用break分號(hào)結(jié)束的。另外 case 10:case 9:case 8:case 7: case 6:default:
位置可以打亂。
雖然case 10:可以后面為空。但位置不可改變。即:為100分時(shí),case 10:無(wú)輸出,無(wú)結(jié)束循環(huán)語(yǔ)句break; ,那么執(zhí)行他下方的case 9:。如case 9:與case 6:位置對(duì)調(diào),那么執(zhí)行case 6:。
希望不光對(duì)你的問(wèn)題有幫助,也對(duì)你的本節(jié)課有幫助。
2016-08-03
//在使用score前,先將其配置好
#include <stdio.h>
int main()?
{
? ? int score = 87; //考試分?jǐn)?shù)為87分?
? ? score = score/10;//這里為提取score的十位數(shù)
? ? switch(score)
? ? {
? ? ? ? /*想想以下代碼為什么用這種方式;
? ? ? ? ? 這種方式的好處?*/
? ? ? ??
? ? ? ? case 10:
? ? ? ? case 9:
? ? ? ? ? ? printf("等級(jí)A");
? ? ? ? ? ? break;
? ? ? ? case 8:
? ? ? ? ? ? printf("等級(jí)B");
? ? ? ? ? ? break; ? ? ? ? ? ? ? //這里是不是缺點(diǎn)什么? ? ? ? ? ? ?
? ? ? ? case 7:
? ? ? ? case 6:?
? ? ? ? ? ? printf("等級(jí)C");
? ? ? ? ? ? break; ? ? ? ? ? ? ? //這里是不是缺點(diǎn)什么? ?
? ? ? ? default:
? ? ? ? ? ? printf("等級(jí)D");
? ? ? ? ? ? break; ? ?
? ? }
? ? return 0;
}
2016-07-28