类似于下面这个switch语句,怎么写?switch (col)
{
  case 0: return a;
  case 1: returnb;
  case 2: return c;
  case ( col> 25 && col< 46 && col % 2 ==0 ): return d;
  case  ( col> 25 && col< 46 && col % 2 !=0 ): return e;
  case 46: return f;
  default: throw new Exception ("out of index");
}
我这个编译的时候出错误。不能将int转换成bool

解决方案 »

  1.   

     ( col> 25 && col< 46 && col % 2 !=0 ): 
     col> 25 && col< 46 && col % 2 !=0 ): 
    换地方 在SWITCH之前做好这些
      

  2.   


    就没有简单易用的,写到switch中的方法么?
      

  3.   


    switch (col)
    {
        case 0: return a;
        case 1: return b;
        case 2: return c;
        case 46: return f;
        default:
            if (col > 25 && col < 46 && col % 2 == 0) return d;
            if (col > 25 && col < 46 && col % 2 != 0) return e;
            throw new Exception("out of index");
    }
      

  4.   

    这一段代码有两个问题:1. col> 25 && col< 46 && col % 2 ==0 语法错误
    这句话等同于(col> 25 && col< 46 && col) % 2 ==0
    把col用来做与运算,所以提示 不能将int转换成bool 2. case 之后不能跟条件。
    你可以把switch case 改成 if else
      

  5.   

    switch语句中case标签不能包含计算式,case标签必须是常量表达式且只能使用基本数据类型...好好看看 C# 语言规范...
      

  6.   

    ( col> 25 && col< 46 && col % 2 ==0 )
    ( col> 25 && col< 46 && col % 2 !=0 )
    这2句返回的是bool类型啊   肯定会报错啊
      

  7.   

    4楼的办法挺好关于判断这两条
            if (col > 25 && col < 46 && col % 2 == 0) return d;
           if (col > 25 && col < 46 && col % 2 != 0) return e;
    个人认为像下面这样会更好点
            if (col > 25 && col < 46)
           {
               if(col % 2 == 0)
               {
                   return d;
               } else {
                   return e;
               }
           }
      

  8.   

    case 后面 接的是常量 那样肯定行不通
      

  9.   


    switch (col)
    {
      case 0: return a;
      case 1: returnb;
      case 2: return c;                    
      //case ( col> 25 && col< 46 && col % 2 ==0 ): return d;
      //case  ( col> 25 && col< 46 && col % 2 !=0 ): return e;            
      case 46: return f;
      default: 
    if( col> 25 && col< 46 && col % 2 ==0 )
    {}
    elwe if( col> 25 && col< 46 && col % 2 !=0 )
    {}
    else
    {
      throw new Exception ("out of index");                
    }
    }