madness_j
2018-05-05 21:47
为什么这样不行
#include <stdio.h>
int main()
{
int score = 87; //考试分数为87分
switch(score)
{
/*想想以下代码为什么用这种方式;
这种方式的好处?*/
case 1:
if(score>=90)
printf("等级A");
break;
case 2:
if(score>=80)
printf("等级B");
break; //这里是不是缺点什么?
case 3:
if(score>=60)
printf("等级C");
break; //这里是不是缺点什么?
case 4:
if(score<60)
printf("等级D");
break;
}
return 0;
}为什么不行
switch语句本身就是一个判断语句,一般情况下可以直接判断,除非一些特别复杂的,switch(x)对应casex:,你懂我的意思把
#include <stdio.h>
int main()
{
int score = 87; //考试分数为87分
switch(score)
{
/*想想以下代码为什么用这种方式;
这种方式的好处?*/
case 1:
printf("等级A");
break;
case 87:
printf("等级B");
break; //这里是不是缺点什么?
case 3:
printf("等级C");
break; //这里是不是缺点什么?
case 4:
printf("等级D");
break;
}
return 0;}
然后我把你所有的if去掉,也成功输出b,从这里可以看出来你的if语句是多余判断
我试了一下,输出一个空结果,#include <stdio.h>int main() { int score = 87; //考试分数为87分 switch(score) { /*想想以下代码为什么用这种方式; 这种方式的好处?*/ case 1: if(score>=90) printf("等级A"); break; case 2: if(score>=80) printf("等级B"); break; //这里是不是缺点什么? case 3: if(score>=60) printf("等级C"); break; //这里是不是缺点什么? case 4: if(score<60) printf("等级D"); break; } return 0;} score=87然后开始运行switch语句也就是switch(87)我试了一下把case2改成case87成功输出b
#include <stdio.h>
int main()
{
int score = 87; //考试分数为87分
score/=10; //强制我写的,,,int 87/10=8;所以执行case 8;
switch(score)
{
/*想想以下代码为什么用这种方式;
这种方式的好处?*/
case 10:
case 9:
printf("等级A");
break;
case 8:
printf("等级B");
break; //这里是不是缺点什么?
case 7:
case 6:
printf("等级C");
break; //这里是不是缺点什么?
default:
printf("等级D");
break;
}
return 0;
}
C语言入门
926027 学习 · 20793 问题
相似问题