#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int num = 0;
if (argc == 2) {
num = atoi(argv[1]);
}
switch (num) {
case 0 ... 59:
printf("差\n");
break;
case 60 ... 74:
printf("中\n");
break;
case 75 ... 84:
printf("良\n");
break;
case 85 ... 100:
printf("优\n");
break;
default:
break;
}
return 0;
}
执行结果:
root@seven:~/projects/test# vim test.c
root@seven:~/projects/test# gcc -o test test.c
root@seven:~/projects/test# ./test 0
差
root@seven:~/projects/test# ./test 59
差
root@seven:~/projects/test# ./test 60
中
root@seven:~/projects/test# ./test 75
良
root@seven:~/projects/test# ./test 85
良
root@seven:~/projects/test# ./test 95
优
root@seven:~/projects/test#
百度switch
才发现switch 语句
C语言中的switch
语法为:
switch(expression){
case constant-expression :
statement(s);
break; /* 可选的 */
case constant-expression :
statement(s);
break; /* 可选的 */
/* 您可以有任意数量的 case 语句 */
default : /* 可选的 */
case
的constant-expression
必须与switch
中的变量具有相同的数据类型,且必须是一个常量或字面量。
字面量
在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数、浮点数以及字符串;而有很多也对布尔类型和字符类型的值也支持字面量表示;还有一些甚至对枚举类型的元素以及像数组、记录和对象等复合类型的值也支持字面量表示法
constant-expression: 常量表达式。
结论
case 的值必须是常量表达式。值域也是可以的,但是为值域时前面的值一定要小于等于后面的值,否则将无效,当然编译时会警告的。
int i = 0;
switch(i){
case 'a'...'z':
case 'A'...'Z':
case 0 ... 9:
case 150:
default:
break;
}
注:
使用整形数字值域时,数字和
...
使用空格隔开,以防止别人读的时候认为是小数点。