switch case 为何不允许嵌套? 如何实现我需要的功能? 只能用else if 吗?
switch( type)
{
case 0x00:
return "ICMP_ECHOREPLY";
break;
case 0x03:
switch (subCode)
{
case 0x00:
return "ICMP_UNREACH_NET";
break;
................//省略若干
default:
return "TYPE0X03 未知数据包";
break;
}
break;
...................//省略若干
default:
return "unknowPacket";
break;
}
------解决方案--------------------我做的测试,是可以的。具体的代码如下:
protected void Page_Load(object sender, EventArgs e)
{
int m = 12;
int n = 12;
switch (m)
{
case 1:
break;
case 12:
switch (n)
{
case 12:
Response.Write("Ok");
break;
default:
break;
}
break;
default:
break;
}
}
------解决方案--------------------你嵌套的里面用return不对,你里面又用了return,你让程序帮你返回到什么地方去
------解决方案--------------------应该可以的 有什么错误信息吗?
------解决方案--------------------switch嵌套使用也是没问题的。你把你的出错提示贴出来,这样才能找问题原因,不要自己先”确诊“再让别人给你找原因。
switch (flag)
{
case 0:
return 10;
case 1:
switch (type)
{
case 0:
return 100;
case 1:
return 200;
default:
return 30;
}
default:
return 30;
}
------解决方案--------------------9楼的代码 测试通过 VS2005
C# code
switch (flag)
{
case 0:
return 10;
case 1:
switch (type)
{
case 0:
return 100;
case 1:
return 200;
default:
return 30;
}
default:
return 30;
}
------解决方案--------------------
都return了,break当然没意义了
------解决方案--------------------
return了又break当然会出错了!
------解决方案--------------------
return了又break会给处警告信息但不会影响程序的运行。这不算错。但是有return就不要写break;或有break就不要写return!