类似于下面这个switch语句,怎么写?

zengjd 2008-12-22 10:53:21
类似于下面这个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
...全文
156 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
y_shi 2008-12-22
  • 打赏
  • 举报
回复
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;
}
}
gonghuaqiao 2008-12-22
  • 打赏
  • 举报
回复
( col> 25 && col< 46 && col % 2 ==0 )
( col> 25 && col< 46 && col % 2 !=0 )
这2句返回的是bool类型啊 肯定会报错啊
vrhero 2008-12-22
  • 打赏
  • 举报
回复
switch语句中case标签不能包含计算式,case标签必须是常量表达式且只能使用基本数据类型...

好好看看 C# 语言规范...
hhhh63 2008-12-22
  • 打赏
  • 举报
回复
这一段代码有两个问题:

1. col> 25 && col< 46 && col % 2 ==0 语法错误
这句话等同于(col> 25 && col< 46 && col) % 2 ==0
把col用来做与运算,所以提示 不能将int转换成bool

2. case 之后不能跟条件。
你可以把switch case 改成 if else

HDNGO 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 gomoku 的回复:]
C# code
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");
}
[/Quote]

这个好~
gomoku 2008-12-22
  • 打赏
  • 举报
回复

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");
}
zengjd 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zgke 的回复:]
( col> 25 && col < 46 && col % 2 !=0 ):
col> 25 && col < 46 && col % 2 !=0 ):
换地方 在SWITCH之前做好这些
[/Quote]

就没有简单易用的,写到switch中的方法么?
医手 2008-12-22
  • 打赏
  • 举报
回复
有创意
zgke 2008-12-22
  • 打赏
  • 举报
回复
( col> 25 && col< 46 && col % 2 !=0 ):
col> 25 && col< 46 && col % 2 !=0 ):
换地方 在SWITCH之前做好这些

haonan_dragon 2008-12-22
  • 打赏
  • 举报
回复
4楼9楼都不错
qshArcc 2008-12-22
  • 打赏
  • 举报
回复

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

bbbbbb888888 2008-12-22
  • 打赏
  • 举报
回复
case 后面只能跟常量......
yingzhilian2008 2008-12-22
  • 打赏
  • 举报
回复
case 后面 接的是常量 那样肯定行不通

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧