c语言中的switch,case中如果是一个范围呢?该怎么办啊??请举个例子,谢谢

2024-11-15 23:20:08
推荐回答(5个)
回答1:

#define Min1 5
#define Max1 15

#define Min2 15
#define Max2 20

void switch_range()
{
//方法① switch语句可以用…来判断范围,要注意其边界条件(且为包含)
switch(x)
{
case Min1 ... Max1:       //等价于    5<=x && x<=15;
;
break;
case Min2 ... Max2:      //等价于    15<=x && x<=20;
;
break;
default:
break;
}

//方法② 另一种常用方法是将其 “/5取商” 常量判断
int x;
switch(x/5)
{
case 1:     //5-9

case 2:     //10-14
printf("5-14");
break;

case 3:    //15-19
printf("15-19");
break;
default:
;
break;
}
}

回答2:

凉拌...

小范围不加break就行
大范围用if判断下在switch
n=x;
if(x>=5&&x<1000)n=5;
switch(n)
{
case 1:
case 2:
case 3:
case 4:
//1-4
break;
case 5:
//5-999
break;
}

回答3:

不break就可以了,比如:
int n;
switch(n){
case 3:
case 4:
case 5:
case 6:
printf("3-6\n");
break;
case 7:
case 8:
case 9:
printf("7-9\n");
break;
default:
printf("other\n");
}

回答4:

case不能是范围,你最好用IF语句实现,比switch简单

回答5:

case没有遇到break;前都是在执行