在外部定义了个 int count=0; 用来接受case中的count++;
int tagNode 是一个外部输入字符
swith(tagNode){
  case 1:
    count++;
    break;
  case 2:
    count++;
    break;
  case 3:
    count++;
    break;
  case 4:
    if(count==3){
    Console.WriteLine("在范围内");
    break;
    }
    else{
    Console.WriteLine("不在范围"); 
    break;
    }
    break;
}需要前3个case都访问到后才能执行 case 4的 否则输出不在范围。。请高手指点指点

解决方案 »

  1.   


    switch(tagNode){ 
      case 1: 
        count++;   case 2: 
        count++; 
      case 3: 
        count++; 
      case 4: 
        if(count==3){ 
        Console.WriteLine("在范围内"); 
        break; 
        } 
        else{ 
        Console.WriteLine("不在范围"); 
        break; 
        } 
        break; 
      

  2.   

    swith(tagNode){ 
      case 1: 
        count++; 
        //break; 
      case 2: 
        count++; 
        //break; 
      case 3: 
        count++; 
        //break; 
      case 4: 
        if(count==3){ 
        Console.WriteLine("在范围内"); 
        break; 
        } 
        else{ 
        Console.WriteLine("不在范围"); 
        break; 
        } 
        break; 
    } 注释掉break就可以了
      

  3.   

    拜托不要误导人,楼主的代码本来就没问题,被你一改反而出现了语法错误,switch语句不可以那样写的,你不测试下就拿上来误人子弟。
      

  4.   

    with(tagNode){
      case 1:
      case 2:
      case 3:    
      case 4:
        count++;
        if(count==3){
        Console.WriteLine("在范围内");
        break;
        }
        else{
        Console.WriteLine("不在范围");
        break;
        }
        break;
      

  5.   


    这样写是没语法问题,不过我怎么觉得楼主不是那个意思啊。你这样变得输入1-4任何一个数字都会区判断了。失去了使用Switch的意义了。其实关键是楼主的意思没有表达清楚。
      

  6.   

                bool bFirstFinished = false;
                bool bSecondFinished = false;
                bool bThirdFinished = false;            switch (tagNode)
                {
                    case 1:
                        if (false == bFirstFinished)
                        {
                            count++;
                            bFirstFinished = true;
                        }
                        break;
                    case 2:
                        if (false == bSecondFinished)
                        {
                            count++;
                            bSecondFinished = true;
                        }
                        break;
                    case 3:
                        if (false == bThirdFinished)
                        {
                            count++;
                            bThirdFinished = true;
                        }
                        break;
                    case 4:
                        if (count == 3)
                        {
                            Console.WriteLine("In scope");
                            //break;
                        }
                        else
                        {
                            Console.WriteLine("out of scope");
                            //break;
                        }
                        break;
                }
      

  7.   

    楼主消失了,我明明给出了简单而快速的方法,居然没反应:           int flag = 0;//请声明为全局变量,需要保存该值。             switch (tagNode)
                {
                    case 1:   //第一个按钮被按下
                      case 2:   //第二个按钮被按下
                      case 4:   //第三个按钮被按下
                        flag |= tagNode;
                        break;
                    case 8:   //第四个按钮被按下
                        if (flag == 7)
                        {
                            Console.WriteLine("在范围内");
                            break;
                        }
                        else
                        {
                            Console.WriteLine("不在范围");
                            break;
                        }
                }