关于C#中的?表达式的问题
来源:百度知道 编辑:UC知道 时间:2024/05/29 03:23:59
有个问题,用if...else...写是这样的:
if(a>1)
{
b="123";
}
else
{
if(i==1)
{
ii="456";
}
else
{
ii="789";
}
if(j==1)
{
jj="098";
}
else
{
jj="765";
}
}
现在我想写成a>1?"":""的这种形式。
我的写法是这样的:
a>1?a="123":(i=1?ii="123":ii="456") a>1?a="123":(j=1?jj="098":jj="765")
这样写也是对的,但是不知道有没有更简介的写法?有的话怎么写?谢谢各位啦!
if(a>1)
{
b="123";
}
else
{
if(i==1)
{
ii="456";
}
else
{
ii="789";
}
if(j==1)
{
jj="098";
}
else
{
jj="765";
}
}
现在我想写成a>1?"":""的这种形式。
我的写法是这样的:
a>1?a="123":(i=1?ii="123":ii="456") a>1?a="123":(j=1?jj="098":jj="765")
这样写也是对的,但是不知道有没有更简介的写法?有的话怎么写?谢谢各位啦!
更易读的写法(举例):
a < 1e1 ? d = 1 :
a < 1e2 ? d = 2 :
a < 1e3 ? d = 3 :
a < 1e4 ? d = 4 :
a < 1e5 ? d = 5 :
a < 1e6 ? d = 6 :
d = -1;
无需括号,完全等价于
if(a < 1e1) d = 1;
else if(a < 1e2) d = 2;
......
else d = -1;
?:的写法已经算简洁了
这样简洁是简洁,但你不怕看的时候头疼,出错不容易检查吗,还是用SWICH吧
楼上说的对,用swich写比较好,一般多余两个条件以上的话最好用swich来写,这样容易查找错误