不理解switch和case之间是什么关系怎么执行的,为什么case后边不是100,90,80这些
switch(<条件>) { case 1 :<语句体>;break; case 2 :<语句体>;break; …… default:<语句体>; };
当switch括号内的条件等于case 后面的常量表达式时,就会执行case后面的代码段
例如:
#include<stdio.h> int main() { double score; printf("请输入分数:\n"); scanf("%lf",&score); switch((int)(score/10))//switch((int)score/10)出现严重错误 { case 10: case 9:printf("A(最好)\n");break; case 8:printf("B(优秀)\n");break; case 7:printf("C(良好)\n");break; case 6:printf("D(及格)\n");break; case 5: case 4: case 3: case 2: case 1: case 0: printf("E(不及格)\n");break; default: printf("Error!\n"); } }
#include<stdio.h> intmain() { charrank; printf("请输入分数等级:(A、B、C、D、E)\n"); scanf("%c",&rank); switch(rank)//switch((int)score/10)出现严重错误,switch(((int)score)/10)出现严重错误, { case'A':printf("A(90~100)\n");break; case'B':printf("B(80~89)\n");break; case'C':printf("C(70~79)\n");break; case'D':printf("D(60~69)\n");break; case'E':printf("E(0~59)\n");break; default:printf("error!\n");break; } }