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;
           }

解决方案 »

  1.   

    我做的测试,是可以的。具体的代码如下:
     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;
            }
            
        }
      

  2.   

    我试过。可以的。另外你的代码中return后又break,没有意义的。
      

  3.   

    你嵌套的里面用return不对,你里面又用了return,你让程序帮你返回到什么地方去
      

  4.   

    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;
                }
      

  5.   

    9楼的代码 测试通过 VS2005switch   (flag) 
                            { 
                                    case   0: 
                                            return   10; 
                                    case   1: 
                                            switch   (type) 
                                            { 
                                                    case   0: 
                                                            return   100; 
                                                    case   1:   
                                                            return   200; 
                                                    default: 
                                                            return   30; 
                                            } 
                                    default: 
                                            return   30; 
                            }
      

  6.   

    都return了,break当然没意义了
      

  7.   

    return了又break当然会出错了!
      

  8.   

    return了又break会给处警告信息但不会影响程序的运行。这不算错。但是有return就不要写break;或有break就不要写return!
      

  9.   

    非也非也,编译器不认为你错并不代表程序没错,return了又break对于程序员来说就是个错!
      

  10.   

    呵呵,break和return,都是跳出程序执行块楼主,好好理解哈switch case语句执行块,应该很简单的哦!
      

  11.   

    switch可以嵌套,是你的代码有问题。
      

  12.   

    switch可以嵌套的。上面已经讲了