发布网友 发布时间:2022-05-12 12:18
共1个回答
热心网友 时间:2023-10-09 01:08
不能,case后面是常量表达式
switch(表达式){
case 常量表达式1:目的1; break;
case 常量表达式2:目的2; break;
}
如果非要实现那么 ,不写break就行,我想了好久都没想出来,你这个问题我在关注
看看有没有大神可以做到c# case 取范围
var age = 0;
string str="";
switch (age){
//0-6
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6: str = "婴幼儿"; break;
default: str = "无"; break;
}
对了我还有一个想法 不过需要提前处理这些数据 你把这些年龄分个区提前判断一下
int b = ((a<0)==true?1:0)+((a<10)==true?1:0)+((a<20)==true?1:0)+((a<30)==true?1:0);
然后用switch 走b
我又想出来一个应该可以满足你的需求,代码如下
int age = 3;
string str = "";
IL_Age_Start:
switch (age) {
case 0:
str = "婴幼儿";
break;
case 7:
str = "少儿";
break;
case 13:
str = "青少年";
break;
case 18:
str = "青年";
break;
case 46:
str = "中年";
break;
case 70:
str = "老年";
break;
default:
age--;
goto IL_Age_Start;
}