C# switch 学习

有一个题目:设计一个程序,要求输入年龄,显示该年龄是:老人(60以上)、中年人(30-60)、青年(18-30)、未成年人(18以下)。我想用swithc()多分支选择结... 有一个题目:设计一个程序,要求输入年龄,显示该年龄是:老人(60以上)、中年人(30-60)、青年(18-30)、未成年人(18以下)。
我想用 swithc() 多分支选择结构,请教各位大侠该怎么做?(Help?!)
我现在做好的代码:
string strPersonType="";
int intAge;
console.WriteLine("你输入你的年年龄(岁):");
intAge=int.Parse(console.ReadLine());
switch(intAge)
{
case 常量表达式1 : strPersonType="你是未成年人!";break:
case 常量表达式2 : strPersonType="你是青年人!";break:
case 常量表达式3 : strPersonType="你是中年人!";break:
case 常量表达式4 : strPersonType="你是老年人!";break:
default :break:
}
console.WriteLine(strPersonType);
console.ReadLine();

上面空白的常量表达式不怎么写,请高手指点
可在VB中 select 多分支就可以如下操作:
select case intAge
case intAge>60:
strPersonType="老年人"
case intAge>30 and intAge<=60 :
strPersonType="中年人"
case intAge>18 and intAge<=30:
strPersonType="青年人"
else
strPersonType="未成年人"
end select

我想可不可以类似操作,我觉得 if () {} else if (){} …… 太麻烦了
展开
 我来答
yieio
2009-09-17 · 超过21用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:46.6万
展开全部
。。。一般不会这么写。。你镇镇应该在进入switch之前先判断好intAge比如

int sw = 0;
if(intAge<18)
{
sw =1;
}else if(intAge<30)
{
sw = 2;
}
else if(intAge<60)
{
sw = 3;
}
else
{
sw = 4;
}

switch(sw)
{
case 1 : strPersonType="你是未成年人!"御绝粗;break:
case 2 : strPersonType="你宏明是青年人!";break:
case 3 : strPersonType="你是中年人!";break:
case 4 : strPersonType="你是老年人!";break:
default :break:
}
忍衍丽9
2009-09-17 · 超过30用户采纳过TA的回答
知道答主
回答量:117
采纳率:0%
帮助的人:82.4万
展开全部
C#不支持switch case使用表达式,只能放困激string,int,char等变量
static void Main(string[] args)
{
string strPersonType = "";
int intAge;
Console.WriteLine("你输入你的年年龄(岁):");
intAge = int.Parse(Console.ReadLine());
if (intAge > 60)
strPersonType = "你前槐是未成年人!";
if (intAge > 30 && intAge <= 60)
strPersonType = "你是青年人!汪悔袜";
if (intAge >= 18 && intAge <= 30)
strPersonType = "你是中年人!";
else
{
strPersonType = "未成年人";
}
Console.WriteLine(strPersonType);
Console.ReadLine();

Console.Read();

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
优游自如
2009-09-17 · TA获得超过1012个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:185万
展开全部
你这族耐里是一个范围值,而不是一个固定值,显然不适合用switch,因为switch的case里面的值跟switch()里面明告的值的类型是一样的,是不可以用表达式的.

这题可以用if...else来解决
if(intAge < 18)
strPersonType="你是未成年人!";
else if(intAge >激穗明18 && intAge <30)
strPersonType="你是青年人!";
.......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6eed2f8
2009-09-17 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3806万
展开全部
还是用if...else...更耐陪合适
因为你年龄有18等等汪亩稿,困孝尾数不为0
用switch不合适
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
419075909
2009-09-17 · TA获得超过203个赞
知道答主
回答量:301
采纳率:0%
帮助的人:0
展开全部
用这个用不好,因为case里应该是常量
用if else一样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式