小休闲Cyrus
2015-09-04 10:27
#include <stdio.h>
int main()
{
int score = 87; //考试分数为87分
switch(score)
{
/*想想以下代码为什么用这种方式;
这种方式的好处?*/
case 100:
case score<100&&score>=90:
printf("等级A");
break;
case score<90&&score>=80:
printf("等级B");
break; //这里是不是缺点什么?
case score>=60&&score<=79:
printf("等级C");
break; //这里是不是缺点什么?
default:
printf("等级D");
break;
}
return 0;
}
switch 语句的作用是把switch后面括号中的变量和case后的值做匹配,匹配上之后就从那个case开始向下执行(同时忽略掉后面的case标号,连同后续case中的语句一起执行下去)。
case后的那个值只能是整型常量,而且只用于和switch后括号中的变量做比较,不能用来做判断。
你代码中case后是由两个条件判断表达式组成的逻辑表达式,其结果是ture或false,因为case后只接受只接受整型常量,所以编译器会报错。
这是一个小技巧..
case选择语句的值应该是常量表达式,不能是条件表达式。你的代码可以改为:
switch(score/10) { case 10: case 9: printf("等级A"); break; case 8: printf("等级B"); break; case 6: case 7: printf("等级C"); break; default: printf("等级D"); break; }
C语言入门
926210 学习 · 20797 问题
相似问题